注意mapper接口中的每一个函数,里面的参数都要通过@Param来取别名;
注意在mybatis里面,如果是模糊查询,需要用concat来拼接字符串
<select id="selectByPointAndTitleLike" resultType="net.xdclass.online_class.domain.Video">
select * from video where point=#{point} and title like concat('%', #{title},'%')
</select>
返回的是一个List<> ,因此在mapper层里面,方法的返回值也需要定义为List<>
<!--下划线自动映射驼峰字段--> <settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings>
配置在config.xml里面
原理是mybatis在将数据库记录映射到类里面的时候,如果发现名称不一致,就会将_ 这种类型自动更改为大写字母,从而映射上去
里面的parameterType是指定传入参数的类型,一般在接口里面通过@Param取了别名,就不需要这个了;在参数里面的 #{Id,jdbcType=Integer} 是指定这个字段在数据库中的数据类型
insert相关语法
语句末尾加了分号
parameterType定义传入参数的类型,既video类,对每一个传入的参数需要用驼峰形式,同时指定其在数据库里面的数据类型;
此时会将add方法与xml配置文件里面的sql记录对应起来,然后执行;
如何获得插入的自增主键
<insert id="add" parameterType="net.xdclass.online_class.domain.Video" useGeneratedKeys="true" keyProperty="id" keyColumn="id" >
useGeneratedKeys 指定是否使用自增主键,keyProperty java实体类里面自增主键的名称,keyColumn数据库里面的名称;
批量插入的语法:
insert into table(col1,col2) values (1,1),(2,2),(3,3)
语句末尾不能加分号
在values后面加上foreach标签,item是list里面每一个元素的类型,separator是分隔符;
与java的for(Video video:list) 这种语法类似,对里面的传参,需要通过 video.title 这种形式去传参数。
调用后返回插入的行数
版权声明:本文为weixin_45063957原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。