MyBatis總結一:快速入門
阿新 • • 發佈:2018-07-09
version rac 文件 ctype group esp args select ransac
簡介
MyBatis 是一款優秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成數據庫中的記錄。
快速入門:
1,創建java項目,並引入相應的jar包 mysql,mybatis
<!--mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.32</version> </dependency> <!--mybatis--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.8</version> </dependency>
2,使用MyBatis查詢數據庫信息(這裏提前準備好了數據庫的User表信息)
2.1,創建User對應的實體類
package com.zy.domain; 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 + ‘}‘; } }
2.2,在resources下面創建了如下的文件:
jdbc.properties(存放數據庫連接信息):
jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306/mybatisdb?useUnicode=true&characterEncoding=utf8&autoReconnect=true &allowMultiQueries=true jdbc.username=root jdbc.password=root
UserMapper.xml(存放User的映射):
<?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"> <!-- 定義所有用到的sql語句 和 映射關系 namespace : 當前這個配置文件的唯一標識, 自定義, 但是不能和其他配置文件namespace重復 --> <mapper namespace="userMapper"> <!-- 定義一條sql語句, 其實就是一個 statement select 代表是查詢語句, 與其類似的還有 insert, update, delete等 id : 這條sql語句的唯一標識,自定義,但是不能和其他sql語句重復 parameterType: sql語句需要的參數類型, 需要寫 類的全路徑 resultType: sql語句返回的結果類型 --> <select id="getUserById" parameterType="int" resultType="com.zy.domain.User"> <!--這裏寫具體的sql語句, #{}是占位符, 編譯時會被替換成?, 然後註入真實參數--> select * from user where id=#{id} </select> </mapper>
mybatis-config.xml(配置數據庫信息,註冊mapper):
<?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 resource="jdbc.properties"/> <!--運行環境可以配置多個, default指定默認使用哪個--> <environments default="development"> <!--配置環境, id是這個環境的唯一標識--> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driverClassName}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> </environments> <!--註冊mapper文件--> <mappers> <mapper resource="UserMapper.xml"/> </mappers> </configuration>
2.3,創建Test類 測試
package com.zy.test; import com.zy.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; import java.io.InputStream; public class Test01 { public static void main(String[] args) { //mybatis的配置文件 String resource = "mybatis-config.xml"; //使用MyBatis提供的Resources類 獲取輸出流 加載mybatis的配置文件 //InputStream inputStream = Resources.getResourceAsStream(resource); //使用類加載器加載mybatis的配置文件(它也加載關聯的映射文件) InputStream inputStream = Test01.class.getClassLoader().getResourceAsStream(resource); //構建sqlsession工廠 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //創建能執行映射文件中sql的sqlSession SqlSession sqlSession = sqlSessionFactory.openSession(); // 執行statement, 需要指定兩個參數: // 1 確定哪個sql語句: mapper文件的namespace + sql語句的id // 2 sql語句需要的參數 User user = sqlSession.selectOne("userMapper.getUserById", 1); System.out.println(user); } }
最終運行結果:
MyBatis總結一:快速入門