Mybatis的Mapper檔案Demo
阿新 • • 發佈:2018-12-21
<?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"> <!-- 寫Sql語句 --> <mapper namespace="com.itheima.mybatis.mapper.UserMapper"> <sql id="selector"> select * from user </sql> <!-- 通過ID查詢一個使用者 --> <select id="findUserById" parameterType="Integer" resultType="User"> select * from user where id = #{v} </select> <!-- //根據使用者名稱稱模糊查詢使用者列表 #{} select * from user where id = ? 佔位符 ? == '五' ${} select * from user where username like '%五%' 字串拼接 --> <select id="findUserByUsername" parameterType="String" resultType="com.itheima.mybatis.pojo.User"> select * from user where username like "%"#{haha}"%" </select> <!-- 新增使用者 --> <insert id="insertUser" parameterType="com.itheima.mybatis.pojo.User"> <selectKey keyProperty="id" resultType="Integer" order="AFTER"> select LAST_INSERT_ID() </selectKey> insert into user (username,birthday,address,sex) values (#{username},#{birthday},#{address},#{sex}) </insert> <!-- 更新 --> <update id="updateUserById" parameterType="com.itheima.mybatis.pojo.User"> update user set username = #{username},sex = #{sex},birthday = #{birthday},address = #{address} where id = #{id} </update> <!-- 刪除 --> <delete id="deleteUserById" parameterType="Integer"> delete from user where id = #{vvvvv} </delete> <!-- 根據使用者名稱模糊查詢 --> <select id="findUserByQueryVo" parameterType="QueryVo" resultType="com.itheima.mybatis.pojo.User"> select * from user where username like "%"#{user.username}"%" </select> <!-- --> <select id="countUser" resultType="Integer"> select count(1) from user </select> <!-- 根據性別和名字查詢使用者 where 可以去掉第一個前ANd --> <select id="selectUserBySexAndUsername" parameterType="User" resultType="User"> <include refid="selector"/> <where> <if test="sex != null and sex != ''"> and sex = #{sex} </if> <if test="username != null and username != ''"> and username = #{username} </if> </where> </select> <!-- 多個ID (1,2,3)--> <select id="selectUserByIds" parameterType="QueryVo" resultType="User"> <include refid="selector"/> <where> <foreach collection="list" item="id" separator="," open="id in (" close=")"> #{id} </foreach> </where> </select> </mapper>
<?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"> <!-- 寫Sql語句 --> <mapper namespace="com.itheima.mybatis.mapper.OrderMapper"> <!-- <select id="selectOrdersList" resultType="Orders"> --> <resultMap type="Orders" id="orders"> <result column="user_id" property="userId"/> </resultMap> <select id="selectOrdersList" resultMap="orders"> SELECT id, user_id, number, createtime, note FROM orders </select> <!-- //一對一關聯 查詢 以訂單為中心 關聯使用者 public List<Orders> selectOrders(); --> <resultMap type="Orders" id="order"> <result column="id" property="id"/> <result column="user_id" property="userId"/> <result column="number" property="number"/> <!-- 一對一 --> <association property="user" javaType="User"> <id column="user_id" property="id"/> <result column="username" property="username"/> </association> </resultMap> <select id="selectOrders" resultMap="order"> SELECT o.id, o.user_id, o.number, o.createtime, u.username FROM orders o left join user u on o.user_id = u.id </select> <!-- //一對多關聯 public List<User> selectUserList(); --> <resultMap type="User" id="user"> <id column="user_id" property="id"/> <result column="username" property="username"/> <!-- 一對多 --> <collection property="ordersList" ofType="Orders"> <id column="id" property="id"/> <result column="number" property="number"/> </collection> </resultMap> <select id="selectUserList" resultMap="user"> SELECT o.id, o.user_id, o.number, o.createtime, u.username FROM user u left join orders o on o.user_id = u.id </select> </mapper>