一.mapper代理开发的原则
要求mapper映射文件中的namespace属性值,必须是mapper代理接口的全限定名称
要求mapper映射文件中,sql语句标签的声明,与mapper接口方法的声明一致(方法用同一个名字)
要求sql语句的resultType属性指定的类型(如果返回值是一个集合,resultType指定的是集合中存放的类型),与mapper接口方法的返回值类型一致
要求sql语句的id属性值,与mapper接口的方法名称一致
要求sql语句的parameterType属性指定的类型,与mapper接口方法的参数类型一致
1.增加操作
insert into `user`(id,username,birthday,sex,address)
values(#{id},#{username},#{birthday},#{sex},#{address})//这里的属性要和前面的对应
2.获取数据库维护的主键值(只能在刚插入时获取)
select seq.nextval from dual
select LAST_INSERT_ID()
3.根据id修改数据
update `user`
set username=#{username},sex=#{sex} where id=#{id}
4.根据id删除数据
delete from `user` where id=#{id}
二:动态的sql(if、where、sql(include)、foreach、set)
2.1.在固定的语句写法下,如果有条件没有传递,mybatis框架会默认设置null值,导致查不到数据
2.1.1.if标签
select * from `user`
where
username like #{username}
and sex=#{sex}
2.1.2.where标签
相当于sql语句中的where关键字根据传入的参数情况
智能的去掉多余的and、or关键字根据传入的参数情况
智能的去掉多余的where关键字
select * from `user`
username like #{username}
and sex=#{sex}
2.1.3.where标签
update `user`
username=#{username},
sex=#{sex},
id=#{id}
2.1.4.where标签
insert into `user`(username,birthday,sex,address)
values
(#{u.username},#{u.birthday},#{u.sex},#{u.address})
2.1.5.sql标签