1.驼峰映射数据库下划线
应用场景:
数据库列名: create_date 对应实体类属性:createDate
在mybatis.xml文件中加入
<settings>
<!-- 驼峰映射数据库下划线 -->
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
这样一些简单的库表就不用做映射或起别名
2.强制插入空数据
应用场景:
Mybatis执⾏插⼊、修改时不允许出现空值
在mybatis.xml文件中加入
<settings>
<setting name="jdbcTypeForNull" value="NULL"/>
</settings>
注:
若不加此配置,必须在添加或修改时必须加⼊jdbcType属 性。
<insert id="save" parameterType="User">
insert into t_user values(#{id},#{username,jdbcType=VARCHAR},#{age,jdbcType=INTEGER})
</insert>
3.实体类别名
mybatis.xml:
<typeAliases>
<typeAlias type="类的全限定名" alias="别名"/>
</typeAliases>
注:别名使用时不区分大小写
4.模糊查询
dao:
List<Book> selectBookByName(@Param("name")String name);
mapper.xml:
<!-- 根据书名查询书籍 -->
<select id="selectBookByName" parameterType="String" resultType="Book">
select * from d_book where name like '%${name}%'
</select>
注:
1.动态SQL
dao:
List<Book> selectBookBy(@Param("type")String queryBy,@Param("content")String content);
mapper.xml
<!-- 根据书名、作者、出版社查询书籍 -->
<select id="selectBookBy" parameterType="String" resultType="Book">
select * from d_book where
<if test="type == 'name'">
name like '%${content}%'
</if>
<if test="type == 'author'">
author like '%${content}%'
</if>
<if test="type == 'press'">
press like '%${content}%'
</if>
</select>
2.拼接查询条件的三种方法
select * from d_book where name like '%${name}%'
select * from d_book where name like '%'||#{name}||'%'
select * from d_book where name like concat(concat('%', #{name}), '%')
5. #{}与${}区别
${}:把数据原样输出
#{}:相当于在原数据外层套上一层双引号,防止sql注入