Mybatis DAO开发--Mapper动态代理开发方式
生活随笔
收集整理的這篇文章主要介紹了
Mybatis DAO开发--Mapper动态代理开发方式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Mybatis DAO開發(fā)–Mapper動態(tài)代理開發(fā)方式
第一步:jar包
創(chuàng)建lib目錄,引入相應的jar包,本節(jié)課用到的案例引入的jar包就是spring整合mybatis要用到的全部jar包。
第二步:配置文件
第一個:是SqlMapConfig.xml配置文件。它是mybatis的入口,也就是核心配置文件。
第二個:映射配置文件。
第三個:數(shù)據(jù)庫配置文件。
第四個:log4j日志配置文件。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//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"/> --><!-- 掃描包的形式創(chuàng)建別名,別名就是類名,不區(qū)分大小寫 --><package name="com.nwtxxb.po"/></typeAliases><!-- 和spring整合后 environments配置將廢除--><environments default="development"><environment id="development"><!-- 使用jdbc事務管理--><transactionManager type="JDBC" /><!-- 數(shù)據(jù)庫連接池--><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"/> --><!-- 根據(jù)接口名稱加載mapper文件要求:1、mapper映射文件和接口在同一個目錄下2、mapper映射文件的名稱和接口名稱一致。3、class就是接口的權限定名--><!-- <mapper class="cn.nwtxxb.mybatis.mapper.UserMapper"/> --><!-- 使用掃描包的形式加載mapper文件 --><package name="com.nwtxxb.mapper"/></mappers> </configuration>第三步:編寫PO類及數(shù)據(jù)庫建庫建表
public class User {private int id;private String username;// 用戶姓名private String sex;// 性別private Date birthday;// 生日private String address;// 地址public int getId() {return id;} }第四步:進行Mapper接口開發(fā)
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 mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- namespace是命名空間,作用sql語句的隔離,后面還有重要作用 #{}作用就是占位符,相當于jdbc的“?” parameterType:查詢的參數(shù)類型 resultType:查詢結果的數(shù)據(jù)類型,如果是pojo應該給全路徑。 --> <!-- mapper代理的開發(fā)規(guī)則:1、namespace必須是接口的全限定名com.nwtxxb.mapper.UserMapper2、Statementid必須和接口的方法名稱一致getUserById3、接口方法的參數(shù)類型要和parameterType要一致4、接口方法的返回值類型要和resultType一致--> <mapper namespace="com.nwtxxb.mapper.UserMapper"><!-- 別名不區(qū)分大小寫 --><select id="getUserById" parameterType="int" resultType="USer">SELECT * FROM `user` WHERE id=#{id};</select><!-- 如果查詢結果返回list, resultType設置為list中一個元素的數(shù)據(jù)類型${}字符串拼接指令--><select id="getUserByName" parameterType="string" resultType="com.nwtxxb.po.User">SELECT * FROM `user` WHERE username LIKE '%${value}%'</select><!-- 參數(shù)時候pojo時,#{}中的名稱就是pojo的屬性 --><insert id="insertUser" parameterType="com.nwtxxb.po.User"><!-- keyProperty:對于pojo的主鍵屬性 resultType:對應主鍵的數(shù)據(jù)類型order:是在insert語句執(zhí)行之前或者之后。如果使用uuid做主鍵,應該先生成主鍵然后插入數(shù)據(jù),此時應該使用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>總結
以上是生活随笔為你收集整理的Mybatis DAO开发--Mapper动态代理开发方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Idea批量修改变量名
- 下一篇: IntelliJ IDEA使用教程(非常