mybatis學習使用1
阿新 • • 發佈:2018-11-07
1、mybatis是一款優秀的持久層框架,使用起來比較簡單
1.1我們首先來看一個小demo,目錄結構如下
程式碼
User.java
package com.rookie.bigdata.domain; import lombok.Data; import java.io.Serializable; /** * @author * @date 2018/10/21 */ //Data註解可以省略get和set方法 @Data public class User implements Serializable{ // 使用者標識 privateView CodeInteger id; // 使用者姓名 private String name; // 使用者性別 private String sex; // 使用者年齡 private Integer age; public User() { super(); } public User( String name, String sex, Integer age) { super(); this.name = name; this.sex = sex;this.age = age; } }
UserMapper.java
package com.rookie.bigdata.mapper; import com.rookie.bigdata.domain.User; /** * @author liuxili * @date 2018/10/21 */ public interface UserMapper { void save(User user); }
UserMapper.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="com.rookie.bigdata.mapper.UserMapper"> <insert id="save" parameterType="com.rookie.bigdata.domain.User" useGeneratedKeys="true"> INSERT INTO BS_USER(name,sex,age) VALUES(#{name},#{sex},#{age})</insert> </mapper>
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"> <!-- XML 配置檔案包含對 MyBatis 系統的核心設定 --> <configuration> <environments default="mysql"> <!-- 環境配置,即連線的資料庫。 --> <environment id="mysql"> <!-- 指定事務管理型別,type="JDBC"指直接簡單使用了JDBC的提交和回滾設定 --> <transactionManager type="JDBC"/> <!-- dataSource指資料來源配置,POOLED是JDBC連線物件的資料來源連線池的實現。 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <!-- mappers告訴了MyBatis去哪裡找持久化類的對映檔案 --> <mappers> <mapper resource="mapper/UserMapper.xml"/> </mappers> </configuration>
AppTest.java
package com.rookie.bigdata; import static org.junit.Assert.assertTrue; import com.rookie.bigdata.domain.User; import com.rookie.bigdata.mapper.UserMapper; 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.Test; import java.io.IOException; import java.io.InputStream; /** * Unit test for simple App. */ public class AppTest { @Test public void test1() throws IOException { // 讀取mybatis-config.xml檔案 InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); // 初始化mybatis,建立SqlSessionFactory類的例項 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder() .build(inputStream); // 建立Session例項 SqlSession session = sqlSessionFactory.openSession(); // 建立User物件 User user = new User("admin", "男", 26); // 插入資料 UserMapper mapper = session.getMapper(UserMapper.class); mapper.save(user); // 提交事務 session.commit(); // 關閉Session session.close(); } }
主要程式碼如上,測試即可直接向資料庫中插入資料
1.2對於上面的demo,我們來介紹一下mybatis的配置檔案結構,如下:
<?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> <!--properties屬性--> </properties> <settings> <!--settings設定--> </settings> <typeAliases> <!--類型別名--> </typeAliases> <typeHandlers> <!--型別處理器--> </typeHandlers> <!--物件工廠--> <objectFactory type="" ></objectFactory> <plugins> <!--外掛--> </plugins> <environments default="mysql"> <!-- 環境配置,即連線的資料庫。 --> <environment id="mysql"> <!-- 指定事務管理型別,type="JDBC"指直接簡單使用了JDBC的提交和回滾設定 --> <transactionManager type="JDBC"/> <!-- dataSource指資料來源配置,POOLED是JDBC連線物件的資料來源連線池的實現。 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <!--資料庫廠商標誌--> <databaseIdProvider type=""></databaseIdProvider> <!-- mappers告訴了MyBatis去哪裡找持久化類的對映檔案 --> <mappers> <!--對映器--> </mappers> </configuration>
上面的demo只不過是這個配置檔案的簡化版本
對於properties的屬性配置,我們可以對上面的demo中的配置做如下更改,
在classpath下面新增properties檔案,如下
db.properties
driver=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/mybatis username=root password=root
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"> <!-- XML 配置檔案包含對 MyBatis 系統的核心設定 --> <configuration> <properties resource="db.properties"> <environments default="mysql"> <!-- 環境配置,即連線的資料庫。 --> <environment id="mysql"> <!-- 指定事務管理型別,type="JDBC"指直接簡單使用了JDBC的提交和回滾設定 --> <transactionManager type="JDBC"/> <!-- dataSource指資料來源配置,POOLED是JDBC連線物件的資料來源連線池的實現。 --> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <!-- mappers告訴了MyBatis去哪裡找持久化類的對映檔案 --> <mappers> <mapper resource="mapper/UserMapper.xml"/> </mappers> </configuration>
setting的配置檢視官方文件主要如下: