多对多 二级缓存
来源:互联网 发布:php extension dir 编辑:程序博客网 时间:2024/05/01 01:55
实体层public class student { private Integer sid; private String sname;public class teacher { private Integer tid; private String tname; private List<student> getStudent=new ArrayList<student>();public interface ITeacherDAO { public teacher getSrtudentById(int tid);}小配置<?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="cn.happy.DAO.ITeacherDAO"> <resultMap id="teacherMapper" type="cn.happy.entity.teacher"> <id column="tid" property="tid"></id> <result column="tname" property="tname"/> <collection property="getStudent" ofType="cn.happy.entity.student"> <id column="sid" property="sid"></id> <result column="sname" property="sname"/> </collection> </resultMap> <select id="getSrtudentById" resultMap="teacherMapper"> SELECT student.sid,sname,teacher.tid,tname from student,teacher_student,teacher where student.sid=teacher_student.sid AND teacher.tid=teacher_student.tid AND teacher.tid=#{tid}</select></mapper>单侧//多对多 @Test public void test() { SqlSession session=myBatis.getSqlSession(); ITeacherDAO dao=session.getMapper(ITeacherDAO.class);teacher tee=dao.getSrtudentById(1); System.out.println(tee.getTname()); for (student stu:tee.getGetStudent()) { System.out.println(stu.getSname()); } }//增删改对一级缓存的影响@Testpublic void testUpdate(){ SqlSession session=myBatis.getSqlSession(); IStudentInfoDAO dao = session.getMapper(IStudentInfoDAO.class); studentinfo stu=dao.getStudentById(2); System.out.println(stu.getStuName()); studentinfo s1=new studentinfo(); s1.setStuAge(20); s1.setStuName("栋哥"); s1.setStuDate(new Date()); dao.addStudent(s1); System.out.println("==========栋 哥哥二进宫"); studentinfo stu2=dao.getStudentById(2); System.out.println(stu2.getStuName());}
增删改对一级缓存的影响
控制台打印
E:\JDK\jdk1.8.0_45\bin\java -ea -Didea.launcher.port=7534 "-Didea.launcher.bin.path=E:\ideaquan\IntelliJ IDEA 2016.3.2\bin" -Dfile.encoding=UTF-8 -classpath "E:\ideaquan\IntelliJ IDEA 2016.3.2\lib\idea_rt.jar;E:\ideaquan\IntelliJ IDEA 2016.3.2\plugins\junit\lib\junit-rt.jar;E:\JDK\jdk1.8.0_45\jre\lib\charsets.jar;E:\JDK\jdk1.8.0_45\jre\lib\deploy.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\access-bridge-32.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\cldrdata.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\dnsns.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\jaccess.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\jfxrt.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\localedata.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\nashorn.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\sunec.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\sunjce_provider.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\sunmscapi.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\sunpkcs11.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\zipfs.jar;E:\JDK\jdk1.8.0_45\jre\lib\javaws.jar;E:\JDK\jdk1.8.0_45\jre\lib\jce.jar;E:\JDK\jdk1.8.0_45\jre\lib\jfr.jar;E:\JDK\jdk1.8.0_45\jre\lib\jfxswt.jar;E:\JDK\jdk1.8.0_45\jre\lib\jsse.jar;E:\JDK\jdk1.8.0_45\jre\lib\management-agent.jar;E:\JDK\jdk1.8.0_45\jre\lib\plugin.jar;E:\JDK\jdk1.8.0_45\jre\lib\resources.jar;E:\JDK\jdk1.8.0_45\jre\lib\rt.jar;E:\Y2165\01MyBatis\target\test-classes;E:\Y2165\01MyBatis\target\classes;C:\Users\Administrator\.m2\repository\junit\junit\4.12\junit-4.12.jar;C:\Users\Administrator\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\Administrator\.m2\repository\org\mybatis\mybatis\3.2.2\mybatis-3.2.2.jar;C:\Users\Administrator\.m2\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar;C:\Users\Administrator\.m2\repository\log4j\log4j\1.2.17\log4j-1.2.17.jar" com.intellij.rt.execution.application.AppMain com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 cn.happy.test.MyBatisTest01,testUpdate
log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
18:30:47,613 DEBUG getStudentById:132 - ooo Using Connection [com.mysql.jdbc.JDBC4Connection@1fbf16f]
18:30:47,616 DEBUG getStudentById:132 - ==> Preparing: select * from studentinfo WHERE stuid=?
18:30:47,667 DEBUG getStudentById:132 - ==> Parameters: 2(Integer)
星星
18:30:47,688 DEBUG addStudent:132 - ooo Using Connection [com.mysql.jdbc.JDBC4Connection@1fbf16f]
18:30:47,689 DEBUG addStudent:132 - ==> Preparing: INSERT INTO studentinfo(stuName,stuAge,stuDate) VALUE (?,?,?)
18:30:47,696 DEBUG addStudent:132 - ==> Parameters: 栋哥(String), 20(Integer), 2017-07-16 18:30:47.688(Timestamp)
==========栋 哥哥二进宫
18:30:47,698 DEBUG getStudentById:132 - ooo Using Connection [com.mysql.jdbc.JDBC4Connection@1fbf16f]
18:30:47,698 DEBUG getStudentById:132 - ==> Preparing: select * from studentinfo WHERE stuid=?
18:30:47,698 DEBUG getStudentById:132 - ==> Parameters: 2(Integer)
星星
Process finished with exit code 0
二级缓存的三部曲
第一步public class studentinfo implements Serializable{第二部
小配置里面加这个 <cache/><mapper namespace="cn.happy.DAO.IStudentInfoDAO"> <cache/>第三部
大配置里面<configuration><!-- 根节点 --> <settings > <setting name="cacheEnabled" value="true"/> </settings>二级缓存代码//02.根据学生学号查询特定学生对象public studentinfo getStudentById(int stuid);
小配置<select id="getStudentById" resultType="cn.happy.entity.studentinfo"> select * from studentinfo WHERE stuid=#{stuId}</select>
二级缓存单侧@Testpublic void testUpdate(){ SqlSession session=myBatis.getSqlSession(); IStudentInfoDAO dao = session.getMapper(IStudentInfoDAO.class); studentinfo stu=dao.getStudentById(2); System.out.println(stu.getStuName()); session.close(); SqlSession session2=myBatis.getSqlSession(); IStudentInfoDAO dao2 = session2.getMapper(IStudentInfoDAO.class); System.out.println("==========栋 哥哥二进宫"); studentinfo stu2=dao2.getStudentById(2); System.out.println(stu2.getStuName());}
二级缓存的运行控制台
E:\JDK\jdk1.8.0_45\bin\java -ea -Didea.launcher.port=7537 "-Didea.launcher.bin.path=E:\ideaquan\IntelliJ IDEA 2016.3.2\bin" -Dfile.encoding=UTF-8 -classpath "E:\ideaquan\IntelliJ IDEA 2016.3.2\lib\idea_rt.jar;E:\ideaquan\IntelliJ IDEA 2016.3.2\plugins\junit\lib\junit-rt.jar;E:\JDK\jdk1.8.0_45\jre\lib\charsets.jar;E:\JDK\jdk1.8.0_45\jre\lib\deploy.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\access-bridge-32.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\cldrdata.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\dnsns.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\jaccess.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\jfxrt.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\localedata.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\nashorn.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\sunec.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\sunjce_provider.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\sunmscapi.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\sunpkcs11.jar;E:\JDK\jdk1.8.0_45\jre\lib\ext\zipfs.jar;E:\JDK\jdk1.8.0_45\jre\lib\javaws.jar;E:\JDK\jdk1.8.0_45\jre\lib\jce.jar;E:\JDK\jdk1.8.0_45\jre\lib\jfr.jar;E:\JDK\jdk1.8.0_45\jre\lib\jfxswt.jar;E:\JDK\jdk1.8.0_45\jre\lib\jsse.jar;E:\JDK\jdk1.8.0_45\jre\lib\management-agent.jar;E:\JDK\jdk1.8.0_45\jre\lib\plugin.jar;E:\JDK\jdk1.8.0_45\jre\lib\resources.jar;E:\JDK\jdk1.8.0_45\jre\lib\rt.jar;E:\Y2165\01MyBatis\target\test-classes;E:\Y2165\01MyBatis\target\classes;C:\Users\Administrator\.m2\repository\junit\junit\4.12\junit-4.12.jar;C:\Users\Administrator\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\Administrator\.m2\repository\org\mybatis\mybatis\3.2.2\mybatis-3.2.2.jar;C:\Users\Administrator\.m2\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar;C:\Users\Administrator\.m2\repository\log4j\log4j\1.2.17\log4j-1.2.17.jar" com.intellij.rt.execution.application.AppMain com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 cn.happy.test.MyBatisTest01,testUpdate
log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
18:40:28,635 DEBUG getStudentById:132 - ooo Using Connection [com.mysql.jdbc.JDBC4Connection@1fbf16f]
18:40:28,638 DEBUG getStudentById:132 - ==> Preparing: select * from studentinfo WHERE stuid=?
18:40:28,690 DEBUG getStudentById:132 - ==> Parameters: 2(Integer)
星星
==========栋 哥哥二进宫
星星
Process finished with exit code 0
阅读全文
0 0
- 多对多 二级缓存
- MyBatis多对多以及一二级缓存
- MyBatis多对多及一二级缓存
- 框架 day66 Mybatis(关联查询映射(1对1/多),延迟加载,一级/二级缓存,与spring整合,逆向工程)
- 对hibernate的二级缓存的理解
- 二级缓存
- 二级缓存
- 二级缓存
- 二级缓存
- 二级缓存
- 二级缓存
- 二级缓存
- 二级缓存
- 对Hibernate一级缓存与二级缓存的解析
- 对Hibernate一级缓存与二级缓存的解析
- 对Hibernate一级缓存与二级缓存的解析
- 个人对一级缓存,二级缓存的初步理解
- MyBatis--查询缓存--增删改对内置二级缓存的影响
- AngularJs小案例_列表
- F-散度(F-divergence)
- 最大连续子序列
- spring常用的几个aware bean接口:
- 重装ubuntu后的第二天——openCV库的安装
- 多对多 二级缓存
- HDU 4267 (树状数组)
- 七夕节
- Python如何给文件按顺序重命名
- 【卡尔曼滤波经典讲解,C++算法实现】
- BLE
- 【U3D】AABB包围体
- 51NOD1284 2 3 5 7的倍数
- 2.同步(Synchronization)