mapper層是干什么的


Mybatis DAO開發–Mapper動態代理開發方式

第一步:jar包

創建lib目錄,引入相應的jar包,本節課用到的案例引入的jar包就是spring整合mybatis要用到的全部jar包。

第二步:配置文件

第一個:是SqlMapConfig.xml配置文件。它是mybatis的入口,也就是核心配置文件。

第二個:映射配置文件。

第三個:頁游數據庫配置文件。

第四個:log4j日志配置文件。

<?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>

<!-- 配置屬性 先加載內部屬性,再加載外部屬性,如果有同名屬性會覆蓋。 --> <properties resource="db.properties"> <property name="jdbc.driver" value="com.mysql.jdbc.Driver"/> <property name="jdbc.url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8"/> <property name="jdbc.username" value="hello"/> </properties> <!-- 配置pojo別名 --> <typeAliases> <!-- <typeAlias type="cn.nwtxxb.mybatis.po.User" alias="user"/> --> <!-- 掃描包的形式創建別名,別名就是類名,不區分大小寫 --> <package name="com.nwtxxb.po"/> </typeAliases> <!-- 和spring整合后 environments配置將廢除--> <environments default="development"> <environment > <!-- 使用jdbc事務管理--> <transactionManager type="JDBC" /> <!-- 數據庫連接池--> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> </environments> <!-- 加載mapper文件 --> <mappers> <!-- resource基於classpath查找 --> <!--<mapper resource="sqlmap/user.xml"/>--> <!-- <mapper resource="mapper/mapper.xml"/> --> <!-- 根據接口名稱加載mapper文件 要求:1、mapper映射文件和接口在同一個目錄下 2、mapper映射文件的名稱和接口名稱一致。 3、class就是接口的權限定名 --> <!-- <mapper /> --> <!-- 使用掃描包的形式加載mapper文件 --> <package name="com.nwtxxb.mapper"/> </mappers>

</configuration>

第三步:編寫PO類及數據庫建庫建表

public class User {

private int id; private String username;// 用戶姓名 private String sex;// 性別 private Date birthday;// 生日 private String address;// 地址 public int getId() { return id; }

}

第四步:進行Mapper接口開發

public interface UserMapper {

User getUserById(int id); List<User> getUserByName(String username); void insertUser(User user);

}

第五步:編寫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">

<!-- namespacewww.pizei.com是命名空間,作用sql語句的隔離,后面還有重要作用

{}作用就是占位符,相當於jdbc的“?”

parameterType:查詢的參數類型
resultType:查詢結果的數據類型,如果是pojo應該給全路徑。
-->
<!-- mapper代理的開發規則:

1、namespace必須是接口的全限定名com.nwtxxb.mapper.UserMapper 2、Statementid必須和接口的方法名稱一致getUserById 3、接口方法的參數類型要和parameterType要一致 4、接口方法的返回值類型要和resultType一致

-->
<mapper namespace="com.nwtxxb.mapper.UserMapper">

<!-- 別名不區分大小寫 --> <select parameterType="int" resultType="USer"> SELECT * FROM `user` WHERE id=#{id}; </select> <!-- 如果查詢結果返回list, resultType設置為list中一個元素的數據類型 ${}字符串拼接指令 --> <select parameterType="string" resultType="com.nwtxxb.po.User"> SELECT * FROM `user` WHERE username LIKE '%${value}%' </select> <!-- 參數時候pojo時,#{}中的名稱就是pojo的屬性 --> <insert parameterType="com.nwtxxb.po.User"> <!-- keyProperty:對於pojo的主鍵屬性 resultType:對應主鍵的數據類型 order:是在insert語句執行之前或者之后。 如果使用uuid做主鍵,應該先生成主鍵然后插入數據,此時應該使用Before --> <selectKey keyProperty="id" resultType="int" order="AFTER"> SELECT LAST_INSERT_ID() </selectKey> INSERT into user (username,birthday,sex,address) values (#{username}, #{birthday}, #{sex}, #{address}) </insert>

</mapper>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM