MyBatis工具类的封装
来源:互联网 发布:阿里云 搭建java服务器 编辑:程序博客网 时间:2024/06/01 09:08
a)Resources类
特点:读取MyBatis-config配置文件 IO
建议:一次性通过IO读取所有的数据
b)SqlSessionFactory类
特点:创建SqlSession 重量级的资源 内存占用多 功能多
建议: 每一个应用只创建一个 线程安全
c)SqlSession类
特点:轻量级资源 不能被多线程共享
1.创建DAO接口的实现类(动态代理设计思想 动态字节码技术)
2.SqlSession内部封装Connection 一个SqlSession对应一个Connection
3.事务控制 SqlSession.commit SqlSession.rollback
public class MyBatisUtil { public static SqlSessionFactory sqlSessionFactory; public static ThreadLocal<SqlSession> tl=new ThreadLocal<SqlSession>(); static{ InputStream stream=null; try { //读取mybatis-config配置文件 stream = Resources.getResourceAsStream("mybatis-config.xml"); //创建SqlSessionFactory对象 sqlSessionFactory= new SqlSessionFactoryBuilder().build(stream); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException("读取配置文件失败"); }finally{ try { stream.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //获取SqlSession对象 public static SqlSession openSqlSession(){ SqlSession sqlSession = tl.get(); if(sqlSession==null){ sqlSession=sqlSessionFactory.openSession(); tl.set(sqlSession); } return sqlSession; } //关闭SqlSession对象 public static void closeSqlSession(){ //获取SqlSession SqlSession sqlSession = openSqlSession(); sqlSession.close(); tl.remove(); } //事务提交 public static void commit(){ SqlSession sqlSession = openSqlSession(); sqlSession.commit(); closeSqlSession(); } //事务回滚 public static void rollback(){ SqlSession sqlSession = openSqlSession(); sqlSession.rollback(); closeSqlSession(); } //获取DAO实现 public static Object getMapper(Class clazz){ SqlSession sqlSession = openSqlSession(); return sqlSession.getMapper(clazz); }}
MyBatis-config中的配置信息
别名TypeAlias可以在mapper文件中直接使用
b)配置内容参数化
问题:在mybatis-config文件中有经常需要修改的字符串相关(数据库相关)
解决方案:把在mybatis-config配置文件中经常需要修改的字符串信息,提取到小配置文件中
I.读取小配置文件
Ii.${key}获取小配置文件中对应的值
- MyBatis工具类的封装
- 封装的工具类
- MyBatis工具:基础CRUD封装
- myBatis学习——SqlSession对象获取的封装工具类
- 工具类的封装-sharePreference的封装
- 工具类的封装--Log封装
- 工具类的封装--SharedPreferences封装
- solrj工具类的封装
- 封装的JDBC工具类
- JDBC工具类的封装
- Ehcache封装的工具类
- 分页的封装工具类
- 封装的log工具类
- Hibernate4工具类的封装
- 封装的HttpClient工具类
- redis的工具类封装
- 封装SharedPreferences的工具类
- JsonUtil工具类的封装
- 汇编第十三节-int指令
- C语言内存管理和动态内存开辟
- 断点续传和多线程下载
- springBoot整合redis报错报错
- springboot热部署
- MyBatis工具类的封装
- 求出0—999之间的所有“水仙花数”。
- jquery中的switch用法及注意问题
- 事件对象(二)
- Redis服务搭建与详细介绍
- 求Sn=a+aa+aaa+aaaa+aaaaa的前五项之和,其中a是一个数字 例如:2+22+222+2222+22222
- PAT 乙级 1072. 开学寄语(20)
- 设计模式之观察者模式
- mybatis基础知识(第一更)