springboot集合mybatis
https://www.cnblogs.com/sh086/p/8375791.html 动态标签
常见:
INSERT INTO tb_product_sell_daily( SELECT product_id,shop_id,create_time,count(product_id) AS total FROM tb_user_product_map WHERE date_format(create_time,'%Y-%m-%d') = date_sub(curdate(),interval 1 day) GROUP BY product_id)
namespace为mapper的路径
其次分为增删改查标签:
<!-- 单表查询 -->
<select id="" parameterType="" resultType=""></select><!-- 多表查询 -->
<select id="" parameterType="" resultMap=""></select><!-- 添加 -->
<insert id="" parameterType=""></insert><!-- 删除 -->
<delete id="" parameterType=""></delete><!-- 更新 -->
<update id="" parameterType=""></update>parameterType表示传入的参数类型
resultType表示返回的类型,如果是List的话就返回List<?> ?的类型路径,此外可能会遇到多表查询,那么就需要自定义sql语句
resultMap表示多表查询,以下是相关参数
type表示pojo的路径,然后第一个表只需要id和type即可
id和column均为数据库的信息,property为数据库信息的简化,id信息栏需要写成id column,其他的均为result column
其余表<association property="" column="" javaType=""> property是pojo的名称,column为对应的id名称,javaType为对应pojo的路径
动态sql标签:
if,choose (when, otherwise),trim (where, set),foreach
if语句和where、set常结合使用,因此不演示
if标签如果有多个语句需要加上逗号
where:查询使用
sql语句就是 select * from user where username=? and password=?
set:更新使用
update user u where id=#{id} u.username = #{username}, u.sex = #{sex}
sql语句就是如果2个条件不为空的话 update user u set u.username = ? ,u.sex = ? where id=?
choose:有时候,我们不想用到所有的查询条件,只想选择其中的一个,查询条件有一个满足即可,使用 choose 标签可以解决此类问题
foreach:用来查询列表中比如1至3的信息
collection:指定输入对象中的集合属性
item:每次遍历生成的对象 open:开始遍历时的拼接字符串 close:结束时拼接的字符串 separator:遍历对象之间需要拼接的字符串,常见的有or和逗号