mybatis中使用sqlsession操作数据库

springmvc+mybatis省略Mapper.java文件,直接用sqlSession操作数据库。

applactionContext-service.xml


    

applationContext-mybatis.xml



   
    
     
 
         
        
        
        
        
        
        
        
        
        

    
    
    
        
        
        
        
        
    

    

    
    
        
    

    
     


DaoSupport.java

package com.lcg.demo.util;  

import java.util.List;

/**
 * Created by Seven on 2015/6/12.
 */
public interface DaoSupport {

    public void insert(QueryHelper queryHelper);

    public void insert(String method,Object param);

    public void delete(QueryHelper queryHelper);

    public void delete(String method,Object o);

    public void update(QueryHelper queryHelper);

    public void update(String method,Object o);

    public T select(QueryHelper queryHelper);

    public T select(String method,Object o);

    public List selectList(QueryHelper queryHelper);

    public List selectList(String method,Object o);

    public List getPageData(int pageNum,int pageSize,QueryHelper queryHelper);
}

DaoSupportImpl.java

package com.lcg.demo.util; 

import java.util.List;

import javax.annotation.Resource;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

/**
 * Created by Seven on 2015/6/12.
 */

@Repository("daoSupport")
@Transactional
public class DaoSupportImpl implements DaoSupport{

    @Resource
    private SqlSessionFactory sqlSessionFactory;

    private SqlSession sqlSession = null;

    /**
     * 获取sqlSession.
     * @return
     */
    public SqlSession getSqlSession(){
        if(sqlSession==null){
            sqlSession = sqlSessionFactory.openSession();
        }
        return sqlSession;
    }


    /**
     * 插入.
     * @param queryHelper
     */
    public void insert(QueryHelper queryHelper) {
        getSqlSession().insert(queryHelper.getMethod(),queryHelper.getRealParams());
    }

    /**
     * 插入.
     * @param method
     * @param param
     */
    public void insert(String method, Object param) {
        getSqlSession().insert(method,param);
    }

    /**
     * 删除.
     * @param queryHelper
     */
    public void delete(QueryHelper queryHelper) {
        getSqlSession().delete(queryHelper.getMethod(),queryHelper.getRealParams());
    }

    /**
     * 删除.
     * @param method
     * @param o
     */
    public void delete(String method, Object o) {
        getSqlSession().delete(method,o);
    }

    /**
     * 更新.
     * @param queryHelper
     */
    public void update(QueryHelper queryHelper) {
        getSqlSession().update(queryHelper.getMethod(),queryHelper.getRealParams());
    }

    /**
     * 更新.
     * @param method
     * @param o
     */
    public void update(String method, Object o) {
        getSqlSession().update(method,o);
    }

    /**
     * 查找一个.
     * @param queryHelper
     * @param 
     * @return
     */
    public  T select(QueryHelper queryHelper) {
        return getSqlSession().selectOne(queryHelper.getMethod(),queryHelper.getRealParams());
    }

    /**
     * 查找一个.
     * @param method
     * @param o
     * @param 
     * @return
     */
    public  T select(String method, Object o) {
        return getSqlSession().selectOne(method,o);
    }

    /**
     * 查找多个.
     * @param queryHelper
     * @param 
     * @return
     */
    public  List selectList(QueryHelper queryHelper) {
        return getSqlSession().selectList(queryHelper.getMethod(),queryHelper.getRealParams());
    }

    /**
     * 查找多个.
     * @param method
     * @param o
     * @param 
     * @return
     */
    public  List selectList(String method, Object o) {
        return getSqlSession().selectList(method,o);
    }

    /**
     * 查找所有.
     * @param method
     * @param 
     * @return
     */
    public  List selectWithoutParams(String method) {
        return getSqlSession().selectList(method);
    }

    /**
     * 分页数据.
     * @param pageNum
     * @param pageSize
     * @param queryHelper
     * @param 
     * @return
     */
    public  List getPageData(int pageNum, int pageSize, QueryHelper queryHelper) {
        return null;
    }
}

QueryHelper.java
package com.lcg.demo.util; 

import java.util.HashMap;
import java.util.Map;

/**
 * Created by Seven on 2015/6/12.
 */
public class QueryHelper {

    private String nameSpace;
    private String methodId;
    private Object param;
    private Map params;

    /**
     * 设置命名空间.
     * @param nameSpace
     * @return
     */
    public QueryHelper setNameSpace(String nameSpace){
        this.nameSpace = nameSpace;
        return this;
    }

    /**
     * 设置dao方法的ID.
     * @param methodId
     * @return
     */
    public QueryHelper setMethodId(String methodId){
        this.methodId = methodId;
        return this;
    }

    /**
     * 设置一个参数.
     * @param param
     * @return
     */
    public QueryHelper setParam(Object param){
        this.param = param;
        return this;
    }

    /**
     * 设置多个参数.
     * @param key
     * @param value
     * @return
     */
    public QueryHelper setParams(String key,Object value){
        if(params == null){
            params = new HashMap();
        }
        params.put(key,value);
        return this;
    }

    /**
     * 获取一个参数.
     * @return
     */
    public Object getParam(){
        return param;
    }

    /**
     * 获得多个参数.
     * @return
     */
    public Map getParams(){
        return params;
    }

    /**
     * 获取非空的参数.
     * @return
     */
    public Object getRealParams(){
        return param == null ? params : param;
    }


    /**
     * 得到结果.
     * @return
     */
    public String getMethod(){
        return nameSpace+"."+methodId;
    }



}

BlogServiceImpl.java

package com.lcg.demo.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.lcg.demo.service.BlogService;
import com.lcg.demo.util.DaoSupport;

@Service
public class BlogServiceImpl implements BlogService{
    @Autowired
    private DaoSupport daoSupport;

    @Override
    public int count() {
        int totleRecord = daoSupport.select("Blog.getTotleRecord",null);
        return totleRecord;
//        Page page = new Page(pageNum, Configuration.pageSize,totleRecord);
//        QueryHelper helper = new QueryHelper();
//        helper.setNameSpace("Article")
//                .setMethodId("getPageData")
//                .setParams("startIndex",page.getStartIndex())
//                .setParams("pageSize",page.getPageSize());
//        List list = daoSupport.selectList(helper);
//        page.setList(list);
//        return page;
    }
     
}

0%