MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,並且改名為MyBatis 。 2013年11月遷移到Github。
iBATIS一詞來源於“internet”和“abatis”的組合,是一個基於Java的持久層框架。 iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO)
首先給大家介紹MyBatis的含義
MyBatis是一個支持普通sql查詢,存儲過程和高級映射的優秀持久層框架。 MyBatis消除了幾乎所有的JDBC代碼和參數的手工設置以及對結果集的檢索封裝。 MyBatis可以使用簡單的XML或註解用於配置和原始映射,將接口和Java的POJO(Plain Old Java Objects,普通的Java對象)映射成數據庫中的記錄。
二、mybatis快速入門
2.1、準備開發環境
1、創建測試項目,普通java項目或者是JavaWeb項目均可,如下圖所示:
2、添加相應的jar包
【mybatis】
mybatis-3.1.1.jar
【MYSQL驅動包】
mysql-connector-java-5.1.7-bin.jar
3、創建數據庫和表,針對MySQL數據庫
SQL腳本如下:
create database mybatis; use mybatis; CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(), age INT); INSERT INTO users(NAME, age) VALUES('孤傲蒼狼', ); INSERT INTO users(NAME, age) VALUES('白虎神皇', );
將SQL腳本在MySQL數據庫中執行,完成創建數據庫和表的操作,如下:
到此,前期的開發環境準備工作全部完成。
2.2、使用MyBatis查詢表中的數據
1、添加Mybatis的配置文件conf.xml
在src目錄下創建一個conf.xml文件,如下圖所示:
conf.xml文件中的內容如下:
<?xml version="." encoding="UTF-"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config .//EN" "http://mybatis.org/dtd/mybatis- -config.dtd"> <configuration> <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://localhost:/mybatis" /> <property name= "username" value="root" /> <property name="password" value="XDP" /> </dataSource> </environment> </environments> </configuration>
2、定義表所對應的實體類,如下圖所示:
User類的代碼如下:
package me.gacl.domain; /** * @author gacl * users表所對應的實體類*/ public class User { //實體類的屬性和表的字段名稱一一對應private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User [id=" + id + ", name =" + name + ", age=" + age + "]"; } }
3、定義操作users表的sql映射文件userMapper.xml
創建一個me.gacl.mapping包,專門用於存放sql映射文件,在包中創建一個userMapper.xml文件,如下圖所示:
userMapper.xml文件的內容如下:
<?xml version="." encoding="UTF-" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper .//EN" "http://mybatis.org/dtd/mybatis--mapper.dtd">
<!-- 為這個mapper指定一個唯一的namespace,namespace的值習慣上設置成包名+sql映射文件名,這樣就能夠保證namespace的值是唯一的
例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除後綴)
-->
<mapper namespace="me.gacl.mapping.userMapper">
<!-- 在select標籤中編寫查詢的SQL語句, 設置select標籤的id屬性為getUser,id屬性值必須是唯一的,不能夠重複使用parameterType屬性指明查詢時使用的參數類型,resultType屬性指明查詢返回的結果集類型
resultType="me.gacl.domain.User"就表示將查詢結果封裝成一個User類的對象返回
User類就是users表所對應的實體類
-->
<!--
根據id查詢得到一個user對象
-->
<select id="getUser" parameterType="int" resultType="me.gacl.domain.User"> select * from users where id=#{id} </select> </mapper>
4、在conf.xml文件中註冊userMapper.xml文件
<?xml version="." encoding="UTF-"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config .//EN" "http://mybatis.org/dtd/mybatis- -config.dtd"> <configuration> <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://localhost:/mybatis" /> <property name= "username" value="root" /> <property name="password" value="XDP" /> </dataSource> </environment> </environments> <mappers> <!-- 註冊userMapper.xml文件, userMapper .xml位於me.gacl.mapping這個包下,所以resource寫成me/gacl/mapping/userMapper.xml--> <mapper resource="me/gacl/mapping/userMapper.xml"/> </mappers> </ configuration>
5、編寫測試代碼:執行定義的select語句
創建一個Test1類,編寫如下的測試代碼:
package me.gacl.test;import java.io.IOException;import java.io.InputStream;import java.io.Reader;import me.gacl.domain.User;import org.apache.ibatis.io.Resources;import org .apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class Test { public static void main(String[] args) throws IOException { // mybatis的配置文件String resource = "conf.xml"; //使用類加載器加載mybatis的配置文件(它也加載關聯的映射文件) InputStream is = Test.class.getClassLoader().getResourceAsStream(resource); / /構建sqlSession的工廠SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is); //使用MyBatis提供的Resources類加載mybatis的配置文件(它也加載關聯的映射文件) //Reader reader = Resources.getResourceAsReader(resource ); //構建sqlSession的工廠//SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); //創建能執行映射文件中sql的sqlSession SqlSession session = sessionFactory.openSession(); /** * 映射sql的標識字符串, * me.gacl.mapping.userMapper是userMapper.xml文件中mapper標籤的namespace屬性的值, * getUser是select標籤的id屬性值,通過select標籤的id屬性值就可以找到要執行的SQL */ String statement = "me.gacl.mapping.userMapper.getUser";//映射sql的標識字符串//執行查詢返回一個唯一user對象的sql User user = session.selectOne(statement, ); System.out .println(user); }}
執行結果如下:
有上圖可以看出,數據庫中記錄已經成功查詢出來。
以上就是本文針對MyBatis入門學習教程(一)-MyBatis快速入門的全部內容,希望對大家有所幫助。