码迷,mamicode.com
首页 > 其他好文 > 详细

Mybatis复习

时间:2018-11-18 10:17:59      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:接口   str   开发   font   eal   一个   语句   HERE   复习   

用mapper.xml的映射文件实现DAO的接口,需要两个配置文件,一个是核心配置xxxconf.xml和mapper.xml,得把mapper.xml的地址写进核心配置中

 

官方推荐使用mapper动态代理开发,即mapper里面的对象实现了接口功能

 

 selectOneselectList

 

如果返回list则调用selectList方法,如果返回单个对象则调用selectOne方法。

 

typeAliases(类型别名)

 

批量别名定义,扫描整个包下的类,别名为类名(大小写不敏感

 

mappers(映射器)配置的几种方法,基本都是要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中

like ‘%${value}%‘ 模糊查询

#{}${}

#{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换。#{}可以有效防止sql注入 #{}可以接收简单类型值或pojo属性值 如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称。

${}表示拼接sql串,通过${}可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换 ${}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,${}括号中只能是value

包装对象:Pojo类中的一个属性是另外一个pojo。一般叫QueryVo

 

 

动态拼接sql,用标签组合if where等

一对多查询

 

逆向工程注意修改以下几点:

 

  1. 修改要生成的数据库表
  2. pojo文件所在包路径
  3. Mapper所在的包路径

 

  1. 逆向工程生成的代码只能做单表查询
  2. 不能在生成的代码上进行扩展,因为如果数据库变更,需要重新使用逆向工程生成代码,原来编写的代码就被覆盖了。
  3. 一张表会生成4个文件

 

 

 

 

主键自增返回

查询idsql

SELECT LAST_INSERT_ID()

<!-- 保存用户 -->

<insert id="saveUser" parameterType="cn.itcast.mybatis.pojo.User">

<!-- selectKey 标签实现主键返回 -->

<!-- keyColumn:主键对应的表中的哪一列 -->

<!-- keyProperty:主键对应的pojo中的哪一个属性 -->

<!-- order:设置在执行insert语句前执行查询id的sql,孩纸在执行insert语句之后执行查询id的sql -->

<!-- resultType:设置返回的id的类型 -->

<selectKey keyColumn="id" keyProperty="id" order="AFTER"

resultType="int">

SELECT LAST_INSERT_ID()

</selectKey>

INSERT INTO `user`

(username,birthday,sex,address) VALUES

(#{username},#{birthday},#{sex},#{address})

</insert>

 

 


 

 

 

Mybatis复习

标签:接口   str   开发   font   eal   一个   语句   HERE   复习   

原文地址:https://www.cnblogs.com/maplesu/p/9976213.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!