日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

初步了解MyBatis的相關配置

作者:青梧w 更新時間: 2022-08-15 編程語言

一、什么是MyBatis?

MyBatis是一個持久層框架,屬于JDBC的替代方案之一,他的前身是iBatis。同時也是ORM關系型映射。

那什么又是ORM關系型映射?

ORM(O/R - Mapping 對象關系映射),是一種把內存中的對象保存到關系型數據庫的技術。用它封裝數據庫訪問的細節。采用元數據(XML)的方式來描述對象-關系(數據庫表)的映射細節,可以使得ORM充當任何一個Java應用業務層到數據庫之間的橋梁。

二、MyBatis的三個要素

1.核心接口和類(SqlSessionFactory 和 SqlSession)

2.核心(主)配置文件 mybatis.cfg.xml

3.SQL映射文件(mapper.xml)

三、SqlSessionFactory和SqlSession

SqlSessionFactory

SqlSessionFactory 是MyBatis中的核心對象,是數據庫映射關系經過編譯之后的內存鏡像,而它的作用就是用來創建SqlSession。

SqlSessionFactory 可以根據上層對象SqlSessionFactoryBuilder對象來進行創建。

SqlSessionFactoryBuilder則可以通過核心(主)配置文件 或者Java代碼定義好的配置類來構建。

SqlSessionFactory ,是線程安全的,它一旦被創建,在應用的運行期間都會存在,如果我們多次創建同一個數據庫的SqlSessionFactory,會導致數據庫資源被消耗殆盡。因此通常情況下,同一個數據庫都只會對應一個SqlSessionFactory ,所以在構建SqlSessionFactory 實例時通常會使用單例模式。

SqlSession

SqlSession對象是另一個核心對象,他是應用程序和持久層之間執行交互操作的單線程對象–其作用主要是執行持久化操作。

每一個線程都應擁有一個自己的SqlSession實例,并且該實例是不共享的,同時也是線程不安全的,SqlSession它的使用范圍最好限制在一次請求或者一個方法中。絕對不能夠把其放在一個類的靜態字段(屬性),注意使用SqlSession對象后,要注意關閉資源。

通常finally關閉或者 try-with-reasoue。

四、搭建MyBatis項目

1.創建Maven項目,在pom.xml導入依賴

<!-- mybatis核心  -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.9</version>
        </dependency>
<!-- mybatis支持JDK8新類型的拓展包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-typehandlers-jsr310</artifactId>
            <version>1.0.2</version>
        </dependency>

<!-- mysql驅動包 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.29</version>
        </dependency>

2.在resources目錄中導入mybaits.cfg.xml-主配置文件,并完成一系列配置

2.1 日志

	<settings>
		<!-- 設置  執行mybatis方法時,顯示日志信息。比如:SQL語句方法參數等 -->
		<setting name="logImpl" value="STDOUT_LOGGING" />
	</settings>

2.2 實體類別名

	<typeAliases>
		<!-- 別名配置,允許使用指定包中的類名做為實體類的類型 -->
		<package name="com.project.bean"/>
	</typeAliases>

2.3 數據源配置,設置連接信息

   <environments default="dev">
        <environment id="dev">
<!--			指定事務管理器類型  此時指定為JDBC 使用JDBC的提交和回滾設置 -->
            <transactionManager type="JDBC"></transactionManager>
<!--		 dataSource 設置數據源  type=POOLED指使用JDBC的POOLED數據源連接池的實現對象	-->
            <dataSource type="POOLED">
<!--				數據庫驅動  mysql5 - com.mysql.jdbc.Driver
			                  mysql8 - com.mysql.cj.jdbc.Driver
				-->
				<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
				<property name="url" value="jdbc:mysql://localhost:端口號/數據庫名稱?characterEncoding=utf-8&amp;allowMultiQueries=true"/>
				<property name="username" value="root"/>
				<property name="password" value="密碼"/>
            </dataSource>
        </environment>
    </environments> 

2.4 鏈接映射文件

<!--  映射文件的所在位置	-->
	<mappers>
        <!-- 掃描指定包下的映射文件 -->
		<package name="com.project.dao"/>
	</mappers>

3.在resources目錄下去創建映射文件和持久接口同名的層級目錄,并完成映射文件名稱的修改(和持久接口同名)

<mapper namespace="com.project.dao.接口文件"> 

</mapper>

隨后就可在其中通過標簽書寫sql語句

 <insert id="addMan">  標簽的id名稱,需要和對應的方法同名
        <!-- addMan意味著持久接口中有同名方法addMan() -->
 </insert>

原文鏈接:https://blog.csdn.net/weixin_44002920/article/details/126082225

欄目分類
最近更新