mybaits开发之通用 dao层编写
来源:互联网 发布:geekbench mac下载 编辑:程序博客网 时间:2024/05/20 15:37
在springMVC+mybatis框架开发时,通常我们会写多的dao,如userDao,roleDao,departDao等等,这样开发效果就很慢,不是很好,所以编写个通用dao.
1.编写dao接口
public interface DAO {/** * 保存对象 * @param str * @param obj * @return * @throws Exception */public Object save(String str, Object obj) throws Exception;/** * 修改对象 * @param str * @param obj * @return * @throws Exception */public Object update(String str, Object obj) throws Exception;/** * 删除对象 * @param str * @param obj * @return * @throws Exception */public Object delete(String str, Object obj) throws Exception;/** * 查找对象 * @param str * @param obj * @return * @throws Exception */public Object findForObject(String str, Object obj) throws Exception;/** * 查找对象 * @param str * @param obj * @return * @throws Exception */public Object findForList(String str, Object obj) throws Exception;/** * 查找对象封装成Map * @param s * @param obj * @return * @throws Exception */public Object findForMap(String sql, Object obj, String key , String value) throws Exception;}2.编写dao 实现类
public class DaoSupport implements DAO {@Resource(name = "sqlSessionTemplate")private SqlSessionTemplate sqlSessionTemplate;/** * 保存对象 * @param str * @param obj * @return * @throws Exception */public Object save(String str, Object obj) throws Exception {return sqlSessionTemplate.insert(str, obj);}/** * 批量更新 * @param str * @param obj * @return * @throws Exception */public Object batchSave(String str, List objs )throws Exception{return sqlSessionTemplate.insert(str, objs);}/** * 修改对象 * @param str * @param obj * @return * @throws Exception */public Object update(String str, Object obj) throws Exception {return sqlSessionTemplate.update(str, obj);}/** * 批量更新 * @param str * @param obj * @return * @throws Exception */public void batchUpdate(String str, List objs )throws Exception{SqlSessionFactory sqlSessionFactory = sqlSessionTemplate.getSqlSessionFactory();//批量执行器SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH,false);try{if(objs!=null){for(int i=0,size=objs.size();i<size;i++){sqlSession.update(str, objs.get(i));}sqlSession.flushStatements();sqlSession.commit();sqlSession.clearCache();}}finally{sqlSession.close();}}/** * 批量更新 * @param str * @param obj * @return * @throws Exception */public Object batchDelete(String str, List objs )throws Exception{return sqlSessionTemplate.delete(str, objs);}/** * 删除对象 * @param str * @param obj * @return * @throws Exception */public Object delete(String str, Object obj) throws Exception {return sqlSessionTemplate.delete(str, obj);} /** * 查找对象 * @param str * @param obj * @return * @throws Exception */public Object findForObject(String str, Object obj) throws Exception {return sqlSessionTemplate.selectOne(str, obj);}/** * 查找对象 * @param str * @param obj * @return * @throws Exception */public Object findForList(String str, Object obj) throws Exception {return sqlSessionTemplate.selectList(str, obj);}public Object findForMap(String str, Object obj, String key, String value) throws Exception {return sqlSessionTemplate.selectMap(str, obj, key);}}3.那么怎么使用呢?
public class UserService {@Resource(name = "daoSupport")private DaoSupport dao;/**通过id获取数据*/public User getUserAndRoleById(String userid) throws Exception {return (User) dao.findForObject("UserMapper.getUserAndRoleById", <span style="font-family: Arial, Helvetica, sans-serif;">userid</span>);}}4. UserMapper.xml中的配置
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="UserMapper">
<select id="getUserById" parameterType="String" resultType="User">select * from SYS_USER where userId=#{userId}</select></mapper>
好了,就这样,是不是觉得很简单,直接释放出dao层,一个通用dao.
0 0
- mybaits开发之通用 dao层编写
- mybaits开发之通用 dao层编写
- mybaits之dao层通用写法sqlsessiontemplate
- Mybaits——DAO层开发两种模式
- Mybatis-Dao层开发之原始dao
- springMVC+mybatis 之 借助SqlSessionTemplate 实现Dao层通用写法
- Mybatis-Dao层开发之Mapper接口
- JDBC连接数据库之编写通用的Dao(7)
- 编写通用的DAO类
- Mybaits--用接口式编程思想处理DAO层业务
- Mybatis 开发dao层
- dao层开发代码
- 我的hibernate通用dao层
- 我的hibernate通用dao层 .
- 我的hibernate通用dao层
- 通用型Dao层简单化查询通用方法
- hibernate的dao层通用设计
- Mybaits深入了解(三)----mybatis开发Dao的方法
- 推荐算法和机器学习系列 - 推荐算法综述
- socket.io使用netscaler作为代理服务器进行转发时可能出现的问题及其处理办法
- 访问网络共享中的数据的方式
- html5 实现简易 slider
- php.ini中文件上传功能配置选项说明
- mybaits开发之通用 dao层编写
- Tomcat 7最大并发连接数的正确修改方法
- MyEclipse new 后面的菜单选项设置
- POJ 3104
- vector,list,deque
- Android中ListView或者GridView的Item和Item中控件的事件冲突
- 《JAVA与模式》之观察者模式
- java redis使用之利用jedis实现redis消息队列
- Oracle学习笔记之AWR报告分析