您好,登錄后才能下訂單哦!
1.創(chuàng)建maven工程
2.添加pom.xml依賴
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
3.創(chuàng)建Mybatis-config.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>
<!-- 開發(fā)環(huán)境 -->
<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/employee?characterEncoding=UTF-8" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<!-- 添加映射文件 -->
<mappers>
<mapper resource="org/clarck/model/mapper/EmpMapper.xml"/>
<mapper resource="org/clarck/model/mapper/DeptMapper.xml"/>
</mappers>
</configuration>
4.創(chuàng)建 log4j.properties , 用于查看日志
log4j.rootLogger=DEBUG, Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
#log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
5.使用generator工具生成映射文件,由于兩張表存在1對多的關系,如需實現(xiàn)級聯(lián)查詢,修改為如下配置
EmpMapper.xml :
<resultMap type="org.clarck.model.entity.Emp" id="empMap">
<id property="eid" column="eid" javaType="int" />
<result property="ename" column="ename" javaType="string" />
<!-- association 一對一關聯(lián) -->
<!-- dept 這個對象里面的內容,需要通過哪個方法來填充里面的值 -->
<!-- dept里面的內容需要通過 DeptMapper 里面方法來填充里面的值 -->
<!-- column="did" 通過did關聯(lián) -->
<!-- 每次得到一個員工就會得到員工的部門編號,因為是select * -->
<!-- 需要將每一個員工的部門編號傳遞到 DeptMapper 的通過部門編號來查詢部門信息的方法中 -->
<!-- 通過select 去指明要調用的方法 -->
<association property="dept" column="did"
select="org.clarck.model.mapper.DeptMapper.query"></association>
</resultMap>
<!-- 通過部門編號獲取該部門的所有員工 -->
<select id="queryByDid" parameterType="int" resultMap="empMap">
select * from emp where did = #{did}
</select>
DeptMapper.xml :
<resultMap type="org.clarck.model.entity.Dept" id="deptMap">
<id property="did" column="did" javaType="int" />
<result property="dname" column="dname" javaType="string" />
</resultMap>
<resultMap type="org.clarck.model.entity.Dept" id="deptEmpMap">
<id property="did" column="did" javaType="int" />
<result property="dname" column="dname" javaType="string" />
<collection property="emp" column="did"
select="org.clarck.model.mapper.EmpMapper.queryByDid"></collection>
</resultMap>
<!-- 通過部門編號獲取該部門的所有員工 -->
<select id="queryByDid" parameterType="int" resultMap="deptEmpMap">
select * from
dept where did = #{did}
</select>
<!-- 通過部門編號獲取部門詳情 -->
<select id="query" parameterType="int" resultType="org.clarck.model.entity.Dept">
select * from
dept where did = #{did}
</select>
6.測試類:
@Test
public void testQueryByEid(){
// 獲取session
SqlSession session = MybatisSessionFactory.openSession();
Emp emp = session.selectOne("org.clarck.model.mapper.EmpMapper.queryByEid",5);
System.out.println(emp.getEname());
}
@Test
public void testQueryByEid2(){
// 獲取session
SqlSession session = MybatisSessionFactory.openSession();
EmpMapper mapper = session.getMapper(EmpMapper.class);
Emp emp = mapper.queryByEid(6);
System.out.println(emp.getEname() + " --- " + emp.getDept().getDname());
}
@Test
public void query(){
// 獲取session
SqlSession session = MybatisSessionFactory.openSession();
EmpMapper mapper = session.getMapper(EmpMapper.class);
List<Emp> list = mapper.query();
System.out.println(list);
}
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。