这一部分不用在意,面试基本不考,里面内容也基本用不到,了解即可。
mybatis重点:结果映射resultmap。parameterType传入参数。
找到了之前的配置好的mybatis代码,稍微看下代码就记起来了,代码看B站视频自己弄。
sqlSession.commit();
sqlSession.close();
增删改必须有提交才能完成。也可以在openSession时设置自动commit。
parameterType=“com.example.demo.pojo.User”
parameterType=“map” map可以自己控制有哪些属性。
like 模糊查询 注入字符串。
引入一个配置文件,替换属性,或者直接配置属性。
resultmap很重要的一个元素,将查询到的数据库字段和java pojo作映射。尽量自己配置属性映射,可能会自动按顺序,或者按名称映射。
日志可以显示sql语句执行过程。
写分页查询语句需要用到前面说的map<String,Object> 传参数。
简单sql语句可以用注解,再绑定mapper就可以执行。
注解实现增删改查。一般考虑sql的参数和返回值,xml的resultmap才能比较好解决返回值复杂的情况。
查询所有学生并且需要对应的老师信息。sql语句如下:
多对一联合查询怎么用mybatis写?(学生pojo有id,name,teacher)
(不建议这样)这里用resultmap,想办法将sql语句查询到的tid转为javaType的Teacher(这是因为面向对象里面用的引用类型,而数据库不能有冗余设计所以只有一个teacher主键),用association加一个select解决。
这里的resultmap也是将sql查询到的结果装进Student对象里。这个就很好,记得之前好像也可以创建一个新类来展示结果。
对对象的集合属性进行子查询。
直接用联合查询,用collection封装列值。
缓存
一级缓存以sqlsession为一个单位保存。
二级缓存按namespace。