MyBatis入门和全局配置文件介绍
目錄
一、MyBatis
1.簡介
2.為什么要使用
3.下載地址
4.MyBatis操作數(shù)據(jù)庫流程
5.接口式編程簡單案例
6.小結(jié)
二、MyBatis-全局配置文件
1.properties屬性
2.settings設(shè)置
3.typeAliases別名處理器
4.environments環(huán)境
5.databaseIdProvider環(huán)境
6.mapper映射
一、MyBatis
1.簡介
-
MyBatis是支持定制化SQL、存儲過程以及高級映射的優(yōu)秀的持久層框架。
-
MyBatis避免了幾乎所有的JDBC代碼和手動設(shè)置參數(shù)以及獲取結(jié)果集。
-
MyBatis可以使用簡單的XML或注解用于配置和原始映射,將接口和Java的POJO映射成數(shù)據(jù)庫中的記錄。
-
MyBatis是一個半自動化的持久化層框架。
2.為什么要使用
-
JDBC
-
SQL夾在Java代碼塊中,耦合度高導(dǎo)致硬編碼。
-
維護不易且實際開發(fā)中sql是有變化的。
-
Hibernate和JPA
-
長難復(fù)雜的SQL,對于Hibernate而言處理也不容易。
-
內(nèi)部自動生產(chǎn)的SQL,不容易做特殊優(yōu)化。
-
基于全映射的全自動框架,大量字段的POJO進行部分映射時比較困難。
3.下載地址
? https://github.com/mybatis/mybatis-3/
4.MyBatis操作數(shù)據(jù)庫流程
引入mysql-connector-java-5.1.37-bin.jar和mybatis-3.4.6.jar
創(chuàng)建MyBatis全局配置文件
創(chuàng)建SQL映射文件
根據(jù)全局配置文件,利用SqlSessionFactoryBuilder創(chuàng)建SqlSessionFactory
使用SqlSessionFactory獲取sqlSession對象。一個sqlSession對象代表和數(shù)據(jù)庫的一次會話
使用SqlSession進行增刪改操作
5.接口式編程簡單案例
創(chuàng)建tb1_employee數(shù)據(jù)庫表
創(chuàng)建sql表對應(yīng)的實體類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;}//... }?
創(chuàng)建操作Employee表的接口類
package com.itheima.dao; ? import com.itheima.bean.Employee; ? public interface EmployeeMapper {public Employee getEmpById(Integer integer); }?
創(chuàng)建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>?
創(chuàng)建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}:從傳遞過來的參數(shù)中取出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.小結(jié)
-
SqlSession的實例不是線程安全的,因此不能被共享。
-
SqlSession每次使用完成后需要正確關(guān)閉。
-
SqlSession可以直接調(diào)用方法的id進行數(shù)據(jù)庫操作,但是我們一般還是推薦使用SqlSession獲取到Dao接口的代理類,執(zhí)行代理對象的方法,可以更安全的進行類型檢查操作。
二、MyBatis-全局配置文件
1.properties屬性
<!--1、mybatis可以使用properties來引入外部properties配置文件的內(nèi)容;resource:引入類路徑下的資源url:引入網(wǎng)絡(luò)路徑或者磁盤路徑下的資源 --><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設(shè)置
-
setting會改變MyBatis的運行時行為。
? name:設(shè)置項名
? value:設(shè)置項取值
3.typeAliases別名處理器
-
可以為Java類型設(shè)置一個短的名字,方便我們引用某個類
-
類很多的情況下,可以批量設(shè)置別名,給這個包下的而每一個類創(chuàng)建一個默認的別名,就是類名小寫
-
也可以使用@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環(huán)境
-
MyBatis可以配置多種環(huán)境,比如開發(fā)、測試和生產(chǎn)環(huán)境對應(yīng)的不同配置
-
每種環(huán)境使用一個environment標簽進行配置并制定唯一標識符
-
可以通過environments標簽中的default屬性指定一個環(huán)境的標識符來快速的切換環(huán)境
5.databaseIdProvider環(huán)境
-
MyBatis可以根據(jù)不同的數(shù)據(jù)庫廠商執(zhí)行不同的語句
6.mapper映射
-
mapper逐個注冊SQL映射文件
-
批量注冊
?
?
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的MyBatis入门和全局配置文件介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis的事务
- 下一篇: MyBatis映射文件(一)