mybatis进阶(spring篇)

#mybatis进阶(spring篇#

##基于sqlSession的DAO##
dao继承SqlSessionFactory,并在spring中将 sqlSessionFactory 注入到DAO。

  

package com.hyc.zj.util;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.support.SqlSessionDaoSupport;
 
public class MapSimpleDao extends  SqlSessionDaoSupport{
    
    private SqlSessionFactory sqlSessionFactory; 
    
    public SqlSessionFactory getSqlSessionFactory() {
        return sqlSessionFactory;
    }

    public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
        this.sqlSessionFactory = sqlSessionFactory;
        super.setSqlSessionFactory(sqlSessionFactory);
    }

    public int count(String statement, Map params){
        return this.getSqlSession().selectOne(statement, params);
    }
    
    public List getList(String statement, Map params){
        return this.getSqlSession().selectList(statement, params);
    }
    
    public Object getOne(String statement, Map params){
        return this.getSqlSession().selectOne(statement, params);
    }
}

##mapper.xml文件示例##
test.xml

  


 
   
     select count(1) from zj_user
   

##spring配置文件示例##
applicationContext-mybatis.xml





   
    
     
 
         
        
        
        
        
        
        
        
        
        

    
    
    
        
        
        
         
     
    
        
     
        
    
    
    
        
    

    
     


##测试一下##
AppTest

package zj;

import javax.annotation.Resource;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.hyc.zj.util.MapSimpleDao;


@RunWith(SpringJUnit4ClassRunner.class)  //使用junit4进行测试
@ContextConfiguration 
({"/applicationContext-*.xml"}) //加载配置文件
public class AppTest {
    @Resource 
    MapSimpleDao mapSimpleDao;
     
    
    @Test
    public void testC(){
         
        int c=mapSimpleDao.count("test.getCount", null);
        System.out.println(c);
        
//      int c=testc.getCount(null);
//      System.out.println(c);
    }
    
     
}

0%