mybatis在springboot中使用

mapper.xml文件的基本信息

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yanzw.shopping.mapper.UserMapper">



</mapper>

注意点1:最好对一个实体类或表的操作定义在一个xml文件中,xml文件的命名空间为该实体类的全包名路径。
注意点2:一切的资源应放在静态文件下,xml文件同理。
注意点3:在mapper.xml文件映射的接口上应注意注释@Mapper,表明身份,或者在springboot启动类中进行包扫描。
注意点4:在mapper.xml文件中,sql语句名的id应与应与对应的接口方法名称一致,以便mybatis进行自动链接,该接口可以没有实现类,由mybatis进行实现。
注意点5:需在springboot配置文件中加入mapper.xml文件路径。
示例:image.png
在配置文件中配置:

mybatis:
  mapper-locations: Mapper/*.xml

注意点6:在实体类存在属性名称与表名称不一致时,需要在xml文件中进行结果映射。
示例一个完整的xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yanzw.shopping.mapper.UserMapper">

<resultMap type="com.yanzw.shopping.domain.User" id="userMap">
<!--column是表列名,property是对应实体类的属性名-->
	<id column="uid" property="uid"/>
        <result column="is_delete" property="isDelete"/>
        <result column="created_user" property="createdUser"/>
        <result column="created_time" property="createdTime"/>
        <result column="modified_user" property="modifiedUser"/>
        <result column="modified_time" property="modifiedTime"/>
</resultMap>

<insert id="insertUser" useGeneratedKeys="true" keyProperty="uid">
INSERT INTO t_user (username, password, salt, phone, email, gender, avatar, is_delete, created_user, created_time, modified_user, modified_time)
        VALUES (#{username}, #{password}, #{salt}, #{phone}, #{email}, #{gender}, #{avatar}, #{isDelete}, #{createdUser}, #{createdTime}, #{modifiedUser}, #{modifiedTime})
</insert>

<!--此处查询所有信息,并封装为User类,resultMap应为上述结果映射id-->
<select id="selectUserByID" resultMap="userMap">
	select * from t_user where username=#{username}
</select>

</mapper>