持久层能够将业务数据存储到磁盘,具有长期存储能力,只要磁盘不损坏(大部分的重要数据都会有相关的备份机制),在断电或者其余状况下,从新开启系统仍然能够读取这些数据。通常执行持久任务的都是数据库系统。持久层可使用巨大的磁盘空间,也比较廉价,它的肯定就是比较慢。java
缘由:sql
1. 不屏蔽SQL ,意味着能够更精确地定位sql语句,能够对其进行优化和改造,这有利于互联网系统性能的提升,符合互联网须要性能优化的特色。数据库
2. 提供强大、灵活的映射机制,方便java开发者使用。提供动态的sql的功能,容许咱们根据不一样条件组装sql,这个功能远比其余工具或java编码的可读性和可维护性高的多,知足各类应用系统的同时也知足了需求常常变化的互联网应用的要求。编程
3. 在mybatis中,提供使用了Mapper接口编程,只要一个接口和一个XML就能建立映射器,进一步简化咱们的工做,使得不少框架API在mybatis中消失,开发者更集中于业务逻辑。缓存
在 Mybatis 中有两个实现类,DefaultSqlSession 和 SqlSessionManager。性能优化
DefaultSqlSession是单线程使用的session
SqlSessionManager是多线程使用的。mybatis
做用:多线程
SqlSession的做用相似于一个JDBC中的 Connection对象,表明着一个链接资源的启用。app
一、建立 SqlSession
SqlSession sqlsession=SqlSessionFactory.openSession();
1
二、SqlSession控制数据库事务
//定义SqlSession
SqlSession sqlsession=null;
try{
//打开SqlSession会话
sqlsession=SqlSessionFactory.openSession();
//some code ...
sqlsession.commit();//提交事务
}catch(Exception e){
sqlsession.rollback();
}finally{
//在finally语句中确保资源被顺利关闭
if(SqlSession!=null)
sqlsession.close();
}
其有一个接口和对应的 xml 文件( 或注解 )组成。
它能够配置以下内容:
映射器的主要做用就是将 sql 查询到的结果映射为一个 POJO,或者将 POJO的数据插入到数据库中,并定义一些关于缓存等重要内容
定义一个角色POJO
public class Role{
private Long id;
private String roleName;
private String note;
/*setter and getter*/
}
欢迎你们留言关注~转发支持一波~