使用Mybatis单表总结
使用select 完成电脑条件查询
<select id="getAll" resultType="Goods" resultType="int">
select * from Goods where id=#{id}
</select>
id属性:就是对这个的一个标识,resyltType属性是查询出来的返回值类型,resultType是传入进去的参数类型,如果需要传入多个参数则需要在接口定义时参使用,@Param(“ziduan”) Integer beiming,在sql语句时使用的字段使用的就是ziduan
因为这里是单表查询,所以完全可以使用myatis的自动映射,所以,实体类里面的属性名字得跟数据库里面的字段名字相同
使用insert,update,delete完成增,改,删
//删
<delete id="delete" parameterType="int">
delete from Goods where gid=#{gid}
</delete>
//改
<update id="update" parameterType="Goods">
update Goods set gname=#{gname},gprice=#{gprice},gcolor=#{gcolor},gscore=#{gscore} where gid=#{gid}
</update>
//增
<insert id="insert" parameterType="Goods">
insert into Goods (gname,gprice,gcolor,gscore) values (#{gname},#{gprice},#{gcolor},#{gscore})
</insert>
这里跟上面差不多,只是sql语句更改,因为这些语句返回都是int类型,所以我们不需要进行返回值类型规定
动态sql语句
如果 我们需要使用组合查询时,传多个参数时
可以使用if,choose,where,set,trim,foreach,对sql语句进行改善
<select id="fuzzy" resultType="Goods">
select * from Goods
<where>
<if test="gname!=''">
gname like CONCAT ('%',#{gname},'%')
</if>
<if test="gprice !=0">
and gprice LIKE CONCAT ('%',#{gprice},'%')
</if>
<if test="gcolor!=''">
and gcolor LIKE CONCAT ('%',#{gcolor},'%')
</if>
<if test="gscore!=0">
and gscore LIKE CONCAT('%',#{gscore},'%')
</if>
</where>
</select>
以上代码就是一个用where标签,它会自动去除里面多余的关键字,if标签则是对传入的字段做一个基本的判断,trim标签更where标签差不多一个效果,而choose标签相当于java中switch语句,通常与when和otherwise标签搭配,set标签就是解决动态更新语句
分页
Mybatis的分页功能基于内存的分页,即查询出来所以的数据,在按起始位置和页面容量取出的结果
<select id="page" resultType="Goods">
select * from Goods limit #{qishi},#{zong}
</select>```
更上面的语句差不多,只是使用了一个limit进行的数据的分割,起始页面就是可以根据((起始页面-1)*总容量)来计算,这里有一点,在xml文件里面是不支持运算字符的,所以需在传入之前进行运算。