一. MyBatis系列:第一个MyBatis工程
本文將使用最小化配置及代碼來開發一個MyBatis示例,以此來了解我們要開發一個MyBatis項目所需要的最小資源。
開發環境
Eclipse Java EE: Luna Release (4.4.0)
JDK: java v 1.8.x
MyBatis:3.2.8
MySQL:5.6.15
?
MyBatis 3.2.8 依賴的 jar 包可以在? http://mvnrepository.com/artifact/org.mybatis/mybatis/3.2.8?處發現和下載
導入jar包的說明:
mybatis(必需):mybatis 組件包
junit(可選):用于支持編寫單元測試
mysql-connector-java(必選):用于連接目標數據庫的jdbc驅動包
commons-loggin, log4j(可選):用于顯示mybatis運行時的日志輸出
pom.xml 依懶包配置
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.2.8</version> </dependency> <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version> </dependency> <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.35</version> </dependency> <dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1.1</version> </dependency> <dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version> </dependency>工程目錄結構
本文中所使用的是 Maven 工程項目,也可以使用本地 jar 包導入工程;
User.java 為實體模型類
MybatisFirstTest.java 為單元測試類
mapper/user.xml? 為實體mapper映射文件
log4j.properties 為日志輸出配置文件
MybatisConfig.xml 為MyBatis的全局配置文件
數據庫表結構
CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(32) NOT NULL,`birthday` date DEFAULT NULL,`sex` char(1) DEFAULT NULL,`address` varchar(256) DEFAULT NULL,PRIMARY KEY (`id`) );MyBatisConfig.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"><!-- 配置該工程所使用的事務管理器類型,JDBC 為 JdbcTransactionFactory.class 的別名 --><transactionManager type="JDBC" /><!-- 配置數據源類型, POOLED 為 PooledDataSourceFactory.class 的別名 --><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/mybatis" /><property name="username" value="root" /><property name="password" value="123456" /></dataSource></environment></environments><mappers><!-- 配置工程所使用的 User 的 Mapper 映射文件路徑 --><mapper resource="mapper/user.xml"/></mappers> </configuration>為了能輸出日志,還需配置 log4j.properties
# Global logging configuration log4j.rootLogger=DEBUG, stdout # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%nUser 實體模型類
public class User {public int id;public String username;public Date birthday;public String sex;public String address; }User.xml 映射文件
<?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"> <mapper namespace="test"><select id="getUserById" parameterType="int" resultType="cn.xleos.mybatisfirst.po.User">SELECT * FROM user WHERE id = #{value}</select> </mapper>單元測試代碼
package cn.xleos.mybatisfirst.test;import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Before; import org.junit.Test;import cn.xleos.mybatisfirst.po.User;public class MybatisFirstTest {private SqlSessionFactory sqlSessionFactory; @Beforepublic void setUp() throws Exception {// 1. 讀取 MybatisConfig.xml 自定義命名的全局配置文件.// getResourceAsStream 使用的資源路徑// getUrlAsStream 使用的是文件路徑InputStream inputStream = Resources.getResourceAsStream("MybatisConfig.xml");// 2. 使用sqlSession的工廠構造器來讀入全局配置,再生成一個sqlSession工廠.sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);}@Testpublic void getUserByIdTest() {// 3. 通過 sqlSession 工廠打開一個 sqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();try {// 4. 使用 selectOne 來調用 user.xml 配置中的(命名空間+statementId) text.getUserById 節的SQL語句// 并傳入簡單類型參數值 1User user = sqlSession.selectOne("test.getUserById", 1);System.out.println(user);}finally{sqlSession.close();}} }以下是單元測試日志輸出,可以方便的查看MyBatis所產生的SQL腳本,以及數據庫連接的狀態;
DEBUG [main] - Opening JDBC Connection DEBUG [main] - Created connection 660143728. DEBUG [main] - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@2758fe70] DEBUG [main] - ==> Preparing: SELECT * FROM user WHERE id = ? DEBUG [main] - ==> Parameters: 1(Integer) DEBUG [main] - <== Total: 1 User [id=1, username=王五, birthday=null, sex=2, address=null] DEBUG [main] - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@2758fe70] DEBUG [main] - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@2758fe70] DEBUG [main] - Returned connection 660143728 to pool.?
轉載于:https://www.cnblogs.com/xialiang/p/4565145.html
總結
以上是生活随笔為你收集整理的一. MyBatis系列:第一个MyBatis工程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (王道408考研数据结构)第六章图-第四
- 下一篇: 数据结构之二叉树的逻辑结构和遍历