java mybatis框架配置詳解
一個(gè)框架的使用,必然離不開其中的組件支持。我們在下載完mybatis框架后,因?yàn)榇蟛糠值膬?nèi)部結(jié)構(gòu)還沒有啟動(dòng),就要手動(dòng)的對其進(jìn)行配置。在之前有提到,mybatis框架的作用就有數(shù)據(jù)庫方面的,所以本篇文章帶來了數(shù)據(jù)庫和sql方面的配置方法,大家一起往下面看看具體操作。
1.配置數(shù)據(jù)庫
創(chuàng)建mybatis的配置文件,配置數(shù)據(jù)庫的信息。數(shù)據(jù)庫我們可以配置多個(gè),但是默認(rèn)的只能用一個(gè)。
<?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="db.properties"/>
<!-- 設(shè)置一個(gè)默認(rèn)的連接環(huán)境信息 -->
<environments default="mysql_developer">
<!-- 連接環(huán)境信息,取一個(gè)任意唯一的名字 -->
<environment id="mysql_developer">
<!-- mybatis使用jdbc事務(wù)管理方式 -->
<transactionManager type="jdbc"/>
<!-- mybatis使用連接池方式來獲取連接 -->
<dataSource type="pooled">
<!-- 配置與數(shù)據(jù)庫交互的4個(gè)必要屬性 -->
<property name="driver" value="${mysql.driver}"/>
<property name="url" value="${mysql.url}"/>
<property name="username" value="${mysql.username}"/>
<property name="password" value="${mysql.password}"/>
</dataSource>
</environment>
<!-- 連接環(huán)境信息,取一個(gè)任意唯一的名字 -->
<environment id="oracle_developer">
<!-- mybatis使用jdbc事務(wù)管理方式 -->
<transactionManager type="jdbc"/>
<!-- mybatis使用連接池方式來獲取連接 -->
<dataSource type="pooled">
<!-- 配置與數(shù)據(jù)庫交互的4個(gè)必要屬性 -->
<property name="driver" value="${oracle.driver}"/>
<property name="url" value="${oracle.url}"/>
<property name="username" value="${oracle.username}"/>
<property name="password" value="${oracle.password}"/>
</dataSource>
</environment>
</environments>
</configuration>
2.配置SqlSessionFactory
MyBatis 的SqlSessionFactory 接口除了使用基于 XML 的配置創(chuàng)建外也可以通過 Java API 編程式地被創(chuàng)建。每個(gè)在 XML 中配置的元素,都可以編程式的創(chuàng)建。
使用 Java API 創(chuàng)建 SqlSessionFactory,代碼如下:
public static SqlSessionFactory getSqlSessionFactoryUsingJavaAPI() {
if (javaSqlSessionFactory == null) {
try {
DataSource dataSource = DataSourceFactory.getDataSource();
TransactionFactory transactionFactory = new JdbcTransactionFactory();
Environment environment = new Environment("development", transactionFactory, dataSource);
Configuration configuration = new Configuration(environment);
configuration.getTypeAliasRegistry().registerAlias("student", Student.class);
configuration.getTypeHandlerRegistry().register(PhoneTypeHandler.class);
configuration.addMapper(StudentMapper.class);
javaSqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return javaSqlSessionFactory;
}
這個(gè)配置里,加載了一個(gè)映射類。映射類是包含了 SQL 映射注解的 Java類,可以用來取代 XML。然而 ,由于 Java 注解的一些限制和 MyBatis 映射的復(fù)雜性,一些高級的映射還是要用 XML 來配置,比如嵌套映射等。由于這個(gè)原因,MyBatis 會(huì)自動(dòng)查找和加載已經(jīng)存在的 XML。
內(nèi)容擴(kuò)展:
Mybatis參數(shù)的設(shè)置
數(shù)據(jù)庫進(jìn)行添加操作需要注意的問題
①.主鍵自增:在建立數(shù)據(jù)庫表的時(shí)候可以設(shè)置主鍵自增
②.主鍵不自增:可以自己手動(dòng)設(shè)置
<insert id="save" parameterType="Book" keyColumn="id" keyProperty="id" useGeneratedKeys="true">
insert into jpa_book (author,createTime,name,price,sales,stock) values (#{author},#{createTime},#{name},#{price},#{sales},#{stock});
</insert>
keyColumn=“id” 指定數(shù)據(jù)庫表主鍵字段
keyProperty=“id” 設(shè)置數(shù)據(jù)庫表對應(yīng)實(shí)體類的屬性名
useGeneratedKeys=“true” 開啟主鍵自增
③.主鍵不支持自增:例如Oracle數(shù)據(jù)庫就不支持自增
<selectKey keyProperty="id" resultType="int" keyColumn="id" order="BEFORE">
select LAST_INSERT_ID <!--或者使用 select UUID()生成-->
</selectKey>
order=“BEFORE” 表示先生成主鍵再進(jìn)行自增
select LAST_INSERT_ID 或者使用 select UUID() 通過函數(shù)生成主鍵值
到此這篇關(guān)于java mybatis框架配置詳解的文章就介紹到這了,更多相關(guān)java mybatis框架的配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java 實(shí)現(xiàn)反射 json動(dòng)態(tài)轉(zhuǎn)實(shí)體類--fastjson
這篇文章主要介紹了java 實(shí)現(xiàn)反射 json動(dòng)態(tài)轉(zhuǎn)實(shí)體類--fastjson,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
Java如何簡單快速入門JWT(token生成與驗(yàn)證)
這篇文章主要給大家介紹了關(guān)于Java如何簡單快速入門JWT(token生成與驗(yàn)證)的相關(guān)資料,JWT是一個(gè)加密的字符串,JWT傳輸?shù)男畔⒔?jīng)過了數(shù)字簽名,因此傳輸?shù)男畔⒖梢员或?yàn)證和信任,需要的朋友可以參考下2023-12-12
SpringBoot this調(diào)用@Bean效果詳解
這篇文章主要介紹了在一個(gè)@Bean方法內(nèi),this調(diào)用同一個(gè)類的@Bean方法會(huì)有什么效果,我們可以通過bean的名稱、bean的類型或者bean的名稱+類型來獲取容器中的bean2023-02-02
關(guān)于使用MyBatis簡化JDBC開發(fā)和解決SQL語句警告的問題
這篇文章主要介紹了關(guān)于使用MyBatis簡化JDBC開發(fā)和解決SQL語句警告的問題,如果idea和數(shù)據(jù)庫沒有建立鏈接,idea不識別表的信息,就會(huì)出現(xiàn)SQL語句的警告,需要的朋友可以參考下2023-05-05
JAVA通過Filter實(shí)現(xiàn)允許服務(wù)跨域請求的方法
這里的域指的是這樣的一個(gè)概念:我們認(rèn)為若協(xié)議 + 域名 + 端口號均相同,那么就是同域即我們常說的瀏覽器請求的同源策略。這篇文章主要介紹了JAVA通過Filter實(shí)現(xiàn)允許服務(wù)跨域請求,需要的朋友可以參考下2018-11-11
Java實(shí)現(xiàn)的Excel列號數(shù)字與字母互相轉(zhuǎn)換功能
這篇文章主要介紹了Java實(shí)現(xiàn)的Excel列號數(shù)字與字母互相轉(zhuǎn)換功能,涉及java針對Excel相關(guān)數(shù)值與字符串操作技巧,需要的朋友可以參考下2018-03-03
Java內(nèi)部類持有外部類導(dǎo)致內(nèi)存泄露的原因與解決方案詳解
這篇文章主要為大家詳細(xì)介紹了Java因?yàn)閮?nèi)部類持有外部類導(dǎo)致內(nèi)存泄露的原因以及其解決方案,文中的示例代碼講解詳細(xì),希望對大家有所幫助2022-11-11

