1.增删改查的实现
现在dao包下写具有增删改查的接口
再在EmployeeMapper.xml这个sql映射文件中写sql语句
关于返回值,直接在接口方法中改方法的返回值
注意
2.insert-获取自增主键的值
keyProperty指定将获取的自增值赋值给哪个属性
3.映射文件_参数
单个参数
多个参数
多个参数直接用#{id}这样的方式无法取出值,因为参数会被封装在Map中
如果多个参数,此时key的取值分别为param1,param2...要取值要写成#{param1}
但这样参数多的时候很容易弄混
命名参数
命名参数多个参数写法还是复杂,使用如下改善
小练习
特别注意,如果参数是Collection,List,Array,不能用#{param1}取值,Collection对应
#{collection[0]} 具体看上图
源码参数封装成map的过程
4#和#取值的区别
#是使用占位符,$则不使用占位符,所以他可以出现在sql语句中可以不是占位符的地方
5.映射文件_select
自定义结果映射规则
结果映射的意思就是bean中对应的属性名和数据库中的列名的对应关系
有三产办法,1设置驼峰2.设置别名3如下图
resultMap关联查询association定义关联对象封装规则
如果不用<association>,也可以使用级联,比如emp中有个属性为dep,现在要给dep中的属性id设置映射关系,<result column="did" property="dep.id"/>来实现
resultMap关联查询association分布查询
resultMap分布查询——延时加载
不论使用结果集嵌套还是分布查询,我们可以等需要用到数据的时候再去查询,这样可以节省效率
在全局配置文件setting标签中设置两个标签
resultMap关联查询collection定义关联集合封装规则
类中有其他类对象的集合作为属性,关联查询就要用到collection,
补充,如上图 分布查询中collection标签中的column是给我们调用的方法传入参数,column="id",传入的值为列名为id的值 传入,如果要传入多个值昵
discriminator鉴别器