MyBatis是一款一流的支持自定義SQL、存儲過程和高級映射的持久化框架。MyBatis幾乎消除了全部的JDBC代碼,也基本不須要手工去設置參數和獲取檢索結果。MyBatis可以使用簡單的XML格式或者註解進行來配置,可以映射基本數據元素、Map接口和POJOs(普通java對象)到數據庫中的記錄。java
不管是用過的hibernate,mybatis,你均可以法相他們有一個共同點:mysql
多須要添加的驅動包:sql
下面進行快速入門:數據庫
目錄以下:apache
實體類User緩存
package com.oumyye.model; public class User { private String id; private String name; private int age; public String getId() { return id; } public void setId(String 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 + "]"; } }
映射文件UserMapping.xmlsession
<?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.oumyye.mapping.UserMapping"> <!-- 在select標籤中編寫查詢的SQL語句, 設置select標籤的id屬性爲getUser,id屬性值必須是惟一的,不可以重複 使用parameterType屬性指明查詢時使用的參數類型,resultType屬性指明查詢返回的結果集類型 resultType="com.oumyye.model.User"就表示將查詢結果封裝成一個User類的對象返回 User類就是users表所對應的實體類 --> <!-- 根據id查詢獲得一個user對象 --> <select id="getUser" parameterType="String" resultType="com.oumyye.model.User"> select * from user where id=#{id} </select> </mapper>
資源文件mybatis.xmlmybatis
<?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"> <transactionManager type="JDBC" /> <!-- 配置數據庫鏈接信息 --> <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="root" /> </dataSource> </environment> </environments> <mappers> <mapper resource="com/oumyye/mapping/userMapping.xml"/> </mappers> </configuration>
測試類:架構
package test; import java.io.InputStream; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test; import com.oumyye.model.User; public class Tests { @Test public void test(){ String resource = "mybatis.xml"; //使用類加載器加載mybatis的配置文件(它也加載關聯的映射文件) InputStream is = Tests.class.getClassLoader().getResourceAsStream(resource); //構建sqlSession的工廠 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is); SqlSession session = sessionFactory.openSession(); /** * 映射sql的標識字符串, * com.oumyye.mapping.UserMapping是userMapper.xml文件中mapper標籤的namespace屬性的值, * getUser是select標籤的id屬性值,經過select標籤的id屬性值就能夠找到要執行的SQL */ String statement = "com.oumyye.mapping.UserMapping.getUser";//映射sql的標識字符串 //執行查詢返回一個惟一user對象的sql User user = session.selectOne(statement, "1123"); System.out.println(user.toString()); } }
結果:app