Mybatis範例

2020-10-25 15:01:01

Mybatis組態檔

mybatis.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/home_system"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/mapping/LiuYanDao.xml"/>
        <mapper resource="com/mapping/UserDao.xml"/>
        <mapper resource="com/mapping/HuoWuBiaoDao.xml"/>
        <mapper resource="com/mapping/XiWangWuZiDao.xml"/>
        <!--。。。更多。。。。-->
    </mappers>
</configuration>

編寫mapper.xml

UserDao.xml

<!--i引入dtd可以是下面的程式碼有提示-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.people_web.dao.IUserDao">
	<!--首先定義resultMap 作用是規定資料庫欄位與實體屬性的關係-->
	<resultMap id="usersResultMap" type="com.people_web.domain.User">
		<!--
			id 標註主鍵欄位
			column填寫資料庫欄位名稱
			property填寫java屬性名稱
			jdbcType填寫資料庫欄位型別(要使用大寫而且欄位型別是固定)
			javaType填寫java實體屬性名稱
		-->
		<id column="user_id" property="userId" jdbcType="INTEGER" javaType="int"/>
		<!--非主鍵型別使用result-->
		<result column="user_name" property="userName" jdbcType="CHAR" javaType="String"></result>
		<result column="user_pwd" property="userPwd" jdbcType="CHAR" javaType="String"></result>
	</resultMap>
	<!--
		id屬性要和Dao中的方法名稱一致,
		mapper通過id尋找對應的Dao的方法
		如果返回的是基礎資料型別 resultType 
		如果返回的是實體型別 resultMap
		也可以是parameterType 
		如果返回的是List resultMap+resultType(不加也可以)
	-->
	<!--登入,返回整型-->
	<select id="userLogin" resultType="int">
		select count(* from user_info where user_name=#{userName} and user_pwd=#{userPwd}
	</select>
	<!--根據id查一個,返回userResultMap物件-->
	<select id="findUserById" resultMap="userResultMap">
		select * from user_info where user_id=#{userId}
	</select>
	<!--查詢所有,返回陣列-->
	<select id="findAllUser" resultMap="userResultMap" resultType="java.util.ArrayList" >
		select * from user_info 
	</select>
	<!--模糊查詢-->
	<select id="findUserByName" resultMap="userResultMap" resultType="java.util.ArrayList">
		select * from user_info where user_name like concat('%',#{userName},'%')
	</select>
	<!--增加語句-->
	<insert id="addUser" parameterType="com.people_web.domain.User">
        insert into user_info(msg,u_id,power) values (#{msg},#{u_id},#{power})
    </insert>
	<!--刪除語句-->
    <delete id="delUser" parameterType="Integer">
        delete from user_info where id=#{id}
    </delete>
	<!--修改語句-->
    <update id="updateUser" parameterType="com.people_web.domain.User">
        update user_info set msg=#{msg} where id=#{id}
    </update>
</mapper>