一双跑鞋的mybatis(五)---mybatis封装dao
来源:互联网 发布:手机淘宝无法取消退款 编辑:程序博客网 时间:2024/04/28 15:43
baseDao.java 基础dao
package org.senssic.dao;import org.senssic.model.Pager;import org.senssic.model.SystemContext;import org.senssic.util.MyBatisUtil;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.ibatis.session.SqlSession;public class BaseDao<T> {public void add(T obj) {SqlSession session = null;try {session = MyBatisUtil.createSession();session.insert(obj.getClass().getName()+".add",obj);session.commit();} catch (Exception e) {e.printStackTrace();session.rollback();} finally {MyBatisUtil.closeSession(session);}}public void update(T obj) {SqlSession session = null;try {session = MyBatisUtil.createSession();session.update(obj.getClass().getName()+".update", obj);session.commit();} catch (Exception e) {e.printStackTrace();session.rollback();} finally {MyBatisUtil.closeSession(session);}}public void delete(Class<T> clz,int id) {SqlSession session = null;try {session = MyBatisUtil.createSession();session.delete(clz.getName()+".delete", id);session.commit();} catch (Exception e) {e.printStackTrace();session.rollback();} finally {MyBatisUtil.closeSession(session);}}@SuppressWarnings("unchecked")public T load(Class<T> clz,int id) {SqlSession session = null;T t = null;try {session = MyBatisUtil.createSession();t = (T)session.selectOne(clz.getName()+".load",id);} finally {MyBatisUtil.closeSession(session);}return t;}@SuppressWarnings("unchecked")public T loadBySqlId(String sqlId,Map<String,Object> params) {SqlSession session = null;T t = null;try {session = MyBatisUtil.createSession();t = (T)session.selectOne(sqlId,params);} finally {MyBatisUtil.closeSession(session);}return t;}@SuppressWarnings("unchecked")public T loadBySqlId(String sqlId,Object obj) {SqlSession session = null;T t = null;try {session = MyBatisUtil.createSession();t = (T)session.selectOne(sqlId,obj);} finally {MyBatisUtil.closeSession(session);}return t;}public List<T> list(Class<T> clz,Map<String,Object> params) {return this.list(clz.getName()+".list", params);}public List<T> list(String sqlId,Map<String,Object> params) {List<T> list = null;SqlSession session = null;try{session = MyBatisUtil.createSession();list = session.selectList(sqlId,params);} finally {MyBatisUtil.closeSession(session);}return list;}public Pager<T> find(Class<T> clz,Map<String,Object> params) {return this.find(clz.getName()+".find", params);}public Pager<T> find(String sqlId,Map<String,Object> params) {int pageSize = SystemContext.getPageSize();int pageOffset = SystemContext.getPageOffset();String order = SystemContext.getOrder();String sort = SystemContext.getSort();Pager<T> pages = new Pager<T>();SqlSession session = null;try{session = MyBatisUtil.createSession();if(params==null) params = new HashMap<String, Object>();params.put("pageSize", pageSize);params.put("pageOffset", pageOffset);params.put("sort", sort);params.put("order", order);List<T> datas = session.selectList(sqlId, params);pages.setDatas(datas);pages.setPageOffset(pageOffset);pages.setPageSize(pageSize);int totalRecord = session.selectOne(sqlId+"_count",params);pages.setTotalRecord(totalRecord);} finally {MyBatisUtil.closeSession(session);}return pages;}}
mybatisUtil.java 工具类
package org.senssic.util;import java.io.IOException;import java.io.InputStream;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class MyBatisUtil {private static SqlSessionFactory factory;static {try {InputStream is = Resources.getResourceAsStream("mybatis-config.xml");factory = new SqlSessionFactoryBuilder().build(is);} catch (IOException e) {e.printStackTrace();}}public static SqlSession createSession() {return factory.openSession();}public static void closeSession(SqlSession session) {if(session!=null) session.close();}}
pager.java分页bean
package org.senssic.model;import java.util.List;public class Pager<E> {private int pageIndex;private int pageSize;private int pageOffset;private int totalRecord;private int totalPage;private List<E> datas;public int getPageIndex() {return pageIndex;}public void setPageIndex(int pageIndex) {this.pageIndex = pageIndex;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}public int getTotalRecord() {return totalRecord;}public void setTotalRecord(int totalRecord) {this.totalRecord = totalRecord;}public int getTotalPage() {return totalPage;}public void setTotalPage(int totalPage) {this.totalPage = totalPage;}public List<E> getDatas() {return datas;}public void setDatas(List<E> datas) {this.datas = datas;}public int getPageOffset() {return pageOffset;}public void setPageOffset(int pageOffset) {this.pageOffset = pageOffset;}}SystemContext.java
package org.senssic.model;public class SystemContext {private static ThreadLocal<Integer> pageSize = new ThreadLocal<Integer>();private static ThreadLocal<Integer> pageIndex = new ThreadLocal<Integer>();private static ThreadLocal<Integer> pageOffset = new ThreadLocal<Integer>();private static ThreadLocal<String> order = new ThreadLocal<String>();private static ThreadLocal<String> sort = new ThreadLocal<String>();public static String getOrder() {return order.get();}public static void setOrder(String _order) {order.set(_order);}public static void removeOrder() {order.remove();}public static String getSort() {return sort.get();}public static void setSort(String _sort) {sort.set(_sort);}public static void removeSort() {sort.remove();}public static int getPageOffset() {return pageOffset.get();}public static void setPageOffset(int _pageOffset) {pageOffset.set(_pageOffset);}public static void removePageOffset() {pageOffset.remove();}public static void setPageSize(int _pageSize) {pageSize.set(_pageSize);}public static int getPageSize() {return pageSize.get();}public static void removePageSize() {pageSize.remove();}public static void setPageIndex(int _pageIndex) {pageIndex.set(_pageIndex);}public static int getPageIndex() {return pageIndex.get();}public static void removePageIndex() {pageIndex.remove();}}
dao实现
package org.senssic.dao;import org.senssic.model.Address;import org.senssic.model.User;import java.util.HashMap;import java.util.List;import java.util.Map;public class AddressDao extends BaseDao<Address> implements IAddressDao {private IUserDao userDao;public AddressDao() {userDao = DAOFactory.getUserDao();}@Overridepublic void add(Address address, int userId) {User u = userDao.load(userId);address.setUser(u);super.add(address);}@Overridepublic void update(Address address) {super.update(address);}@Overridepublic void delete(int id) {super.delete(Address.class, id);}@Overridepublic List<Address> list(int userId) {Map<String,Object> params = new HashMap<String, Object>();params.put("userId", userId);return super.list(Address.class, params);}@Overridepublic Address load(int id) {return super.load(Address.class, id);}}
0 0
- 一双跑鞋的mybatis(五)---mybatis封装dao
- 一双跑鞋的mybatis(二)---mybatis配置文件
- 一双跑鞋的mybatis(一)---mybatis入门例子
- 一双跑鞋的mybatis(三)---sql映射的配置
- 一双跑鞋的mybatis(四)---动态sql语句
- 一双跑鞋的mybatis(六)---使用generator自动生成mybatis映射代码
- 基于mybatis动态sql的dao封装
- Mybatis通用DAO设计封装(mybatis)
- Mybatis通用DAO设计封装(mybatis)
- Mybatis通用DAO设计封装(mybatis)
- Mybatis和hibernate中的DAO层封装的区别
- notepad Mybatis通用DAO设计封装
- MyBatis学习--mybatis开发dao的方法
- 【MyBatis-04】mybatis开发dao的方式
- Mybatis学习笔记(五)【开发dao方法】
- 通用DAO之MyBatis封装,封装通用的增删改查(一)
- 通用DAO之MyBatis封装,封装通用的增删改查(二)
- 通用DAO之MyBatis封装,封装通用的增删改查(一)
- ibatis 报错:There is already a statement named uhr.rcmt.updateResumeScore in this SqlMap.
- android 常用控件之 (Spinner )使用方法
- 简单mysql的存储过程
- 线程 Interrupter 使用要注意的问题
- 分享一个通过JS、CSS3滚动渐变的效果
- 一双跑鞋的mybatis(五)---mybatis封装dao
- 基本数据类型与 String 之间的转换
- QT 之 QAction类 的常用的函数
- Java三大特性
- javascript申明对象
- producer & consumer
- ios runtime 动态向类添加方法
- 用WiFi共享精灵听着歌睡着觉,好惬意
- 【c++】error LNK1123: failure during conversion to COFF: file invalid or corrupt