小结

二级缓存就是一级缓存的缓冲器:一级缓存制造成本很高因此它的容量有限,
二级缓存的作用就是存储那些CPU处理时需要用到、一级缓存又无法存储的数据
。 同样道理,三级缓存和内存可以看作是二级缓存的缓冲器,它们的容量递增,
但单位制造成本却递减。二者分别用来存放数据以及对执行这些数据的指令进行即时解码,
而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。

(1)读取MyBatis的配置文件。. mybatis-config.xml为MyBatis的全局配置文件,用于配置数据库连接信息。.
(2)加载映射文件。. 映射文件即SQL映射文件,该文件中配置了操作数据库的SQL语句
需要在MyBatis配置文件mybatis-config.xml中加载。.
mybatis-config.xml 文件可以加载多个映射文件,每个文件对应数据库中的一张表。.
(3)构造会话工厂。. 通过MyBatis的环境配置信息构建会话工厂SqlSessionFactory。

SqlSessionFactory 可以被认为是一个数据库连接池,它的作用是创建 SqlSession 接口对象。
SqlSessionFactory 的生命周期存在于整个 MyBatis 的应用之中
可以认为 SqlSessionFactory 的生命周期就等同于 MyBatis 的应用周期。

SqlSession 就相当于一个数据库连接(Connection 对象),你可以在一个事务里面执行多条 SQL
然后通过它的 commit、rollback 等方法,提交或者回滚事务。
SqlSession 的最佳的作用域是请求或方法作用域

mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身
而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。
 · MyBatis的核心是SqlSessionFactoryBuider、SqlSessionFactory和SqlSession对象,三者依次为
创建关系最终我们要得到的是SqlSession对象,通过SqlSession对象来进项数据的访问,但每
次访问时都需要编写创建SqlSession对象的这一系列过程,

<form class="form-inline" action="<%=basePath %>music/toMusicManager" method="post" style="float:right;margin-left: 10px">
<div class="form-group">
<label for="exampleInputName2"><font size="2"></font></label>
<input type="text" name="musicname" value="${musicname}" class="form-control" id="exampleInputName2">
</div>
<button type="submit" class="btn btn-default">搜索</button>
</form>

@Service
public class MusicServiceImpl implements MusicService {
@Autowired
MusicMapper mm;
@Autowired
SingerMapper sm;
@Autowired
MusictypeMapper mtm;
@Override
public PageInfo<Music> getMusicByPage(int pageNO, String musicname,String singername) {
// 分页查询非管理员的某一页用户
// 设置分页的参数(1.页数2.每页的条数)
PageHelper.startPage(pageNO, 6);
MusicExample me = new MusicExample();
Criteria cc = me.createCriteria();
if (musicname != null && musicname != "") {
cc.andMusicnameLike("%" + musicname + "%");
}
if (singername != null && singername != "") {
cc.andMusicnameLike("%" + singername + "%");
}
// 查询符合条件的数据
List<Music> mlist = mm.selectByExample(me);
// 对某个条件下的集合数据进行分页
PageInfo<Music> info = new PageInfo<Music>(mlist);
return info;
}

@RequestMapping("toMusicManager")
public String toMusicManager(Model model,@RequestParam(defaultValue="1") int pageNO,String musicname,String singername) {
PageInfo<Music> info=ms.getMusicByPage(pageNO,musicname,singername);
JSONArray json =JSONArray.fromObject(info.getList());
model.addAttribute("json", json);
model.addAttribute("info",info);
model.addAttribute("musicname",musicname);
model.addAttribute("singername",singername);
return "main/find";
}

原文地址:https://www.cnblogs.com/Hiramunderneath/p/14968910.html