MyBatis入门和全局配置文件介绍
目錄
一、MyBatis
1.簡介
2.為什么要使用
3.下載地址
4.MyBatis操作數據庫流程
5.接口式編程簡單案例
6.小結
二、MyBatis-全局配置文件
1.properties屬性
2.settings設置
3.typeAliases別名處理器
4.environments環境
5.databaseIdProvider環境
6.mapper映射
一、MyBatis
1.簡介
-
MyBatis是支持定制化SQL、存儲過程以及高級映射的優秀的持久層框架。
-
MyBatis避免了幾乎所有的JDBC代碼和手動設置參數以及獲取結果集。
-
MyBatis可以使用簡單的XML或注解用于配置和原始映射,將接口和Java的POJO映射成數據庫中的記錄。
-
MyBatis是一個半自動化的持久化層框架。
2.為什么要使用
-
JDBC
-
SQL夾在Java代碼塊中,耦合度高導致硬編碼。
-
維護不易且實際開發中sql是有變化的。
-
Hibernate和JPA
-
長難復雜的SQL,對于Hibernate而言處理也不容易。
-
內部自動生產的SQL,不容易做特殊優化。
-
基于全映射的全自動框架,大量字段的POJO進行部分映射時比較困難。
3.下載地址
? https://github.com/mybatis/mybatis-3/
4.MyBatis操作數據庫流程
引入mysql-connector-java-5.1.37-bin.jar和mybatis-3.4.6.jar
創建MyBatis全局配置文件
創建SQL映射文件
根據全局配置文件,利用SqlSessionFactoryBuilder創建SqlSessionFactory
使用SqlSessionFactory獲取sqlSession對象。一個sqlSession對象代表和數據庫的一次會話
使用SqlSession進行增刪改操作
5.接口式編程簡單案例
創建tb1_employee數據庫表
創建sql表對應的實體類Employee
public class Employee {private int id;private String name;private String gender;private String email;public Employee() {} ?public Employee(int id, String name, String gender, String email) {this.id = id;this.name = name;this.gender = gender;this.email = email;}//... }?
創建操作Employee表的接口類
package com.itheima.dao; ? import com.itheima.bean.Employee; ? public interface EmployeeMapper {public Employee getEmpById(Integer integer); }?
創建MyBatis全局配置文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//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="123456" /></dataSource></environment></environments><!-- 將我們寫好的sql映射文件(EmployeeMapper.xml)一定要注冊到全局配置文件(mybatis-config.xml)中 --><mappers><mapper resource="conf/EmployeeMapper.xml" /></mappers> </configuration>?
創建SQL映射文件EmployeeMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.itheima.dao.EmployeeMapper"> <!-- namespace:名稱空間;指定為接口的全類名 id:唯一標識 resultType:返回值類型 #{id}:從傳遞過來的參數中取出id值 ? public Employee getEmpById(Integer id);--><select id="getEmpById" resultType="com.itheima.bean.Employee">select id,name,email,gender from tb1_employee where id = #{id}</select> </mapper>?
得到SqlSession進行查詢操作
6.小結
-
SqlSession的實例不是線程安全的,因此不能被共享。
-
SqlSession每次使用完成后需要正確關閉。
-
SqlSession可以直接調用方法的id進行數據庫操作,但是我們一般還是推薦使用SqlSession獲取到Dao接口的代理類,執行代理對象的方法,可以更安全的進行類型檢查操作。
二、MyBatis-全局配置文件
1.properties屬性
<!--1、mybatis可以使用properties來引入外部properties配置文件的內容;resource:引入類路徑下的資源url:引入網絡路徑或者磁盤路徑下的資源 --><properties resource="dbconfig.properties"></properties> ?<environments default="dev_mysql"><environment id="dev_mysql"><transactionManager type="JDBC"></transactionManager><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /></dataSource></environment>dbconfig.properties
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis jdbc.username=root jdbc.password=1234562.settings設置
-
setting會改變MyBatis的運行時行為。
? name:設置項名
? value:設置項取值
3.typeAliases別名處理器
-
可以為Java類型設置一個短的名字,方便我們引用某個類
-
類很多的情況下,可以批量設置別名,給這個包下的而每一個類創建一個默認的別名,就是類名小寫
-
也可以使用@Alisa注解為其制定一個別名
typeAliases><!--typeAlias:為某個java類型起別名type:指定要起別名的全類名,默認別名就是類名小寫alias:指定新的別名--><typeAlias type="com.itheima.bean.Employee" alias="employee"></typeAlias><!--package:為某個包下的所有類及其子包批量起別名(類名小寫)批量起別名的情況下,可以會造成某個包下的子包下有類名沖突,可以使用@Alias(value="指定別名")注解指定新的別名--><package name="com.itheima.bean"/></typeAliases>?
4.environments環境
-
MyBatis可以配置多種環境,比如開發、測試和生產環境對應的不同配置
-
每種環境使用一個environment標簽進行配置并制定唯一標識符
-
可以通過environments標簽中的default屬性指定一個環境的標識符來快速的切換環境
5.databaseIdProvider環境
-
MyBatis可以根據不同的數據庫廠商執行不同的語句
6.mapper映射
-
mapper逐個注冊SQL映射文件
-
批量注冊
?
?
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的MyBatis入门和全局配置文件介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis的事务
- 下一篇: MyBatis映射文件(一)