欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MyBatis框架搭建與代碼解讀分析

 更新時(shí)間:2024年08月29日 15:10:17   作者:蘇少朋  
MyBatis是一個(gè)靈活的持久層框架,適合與數(shù)據(jù)庫(kù)交互,支持自定義SQL和高級(jí)映射,這篇文章給大家介紹MyBatis框架搭建與代碼解讀,感興趣的朋友跟隨小編一起看看吧

前言:

MyBatis是一個(gè)靈活的持久層框架,適合與數(shù)據(jù)庫(kù)交互,支持自定義SQL和高級(jí)映射。搭建MyBatis的基本步驟包括:

  • 環(huán)境準(zhǔn)備:安裝JDK、Maven和IDE。
  • 創(chuàng)建項(xiàng)目:建立Maven項(xiàng)目并設(shè)置基本信息。
  • 添加依賴:在pom.xml中引入MyBatis和數(shù)據(jù)庫(kù)驅(qū)動(dòng)的依賴。
  • 配置MyBatis:創(chuàng)建mybatis-config.xml文件,配置數(shù)據(jù)庫(kù)連接和Mapper。
  • 實(shí)現(xiàn)Mapper和模型:編寫(xiě)Mapper接口及其XML文件和對(duì)應(yīng)的模型類。
  • 主程序測(cè)試:通過(guò)主類測(cè)試數(shù)據(jù)庫(kù)連接和查詢。

完成這些步驟后,可以成功建立一個(gè)簡(jiǎn)單的MyBatis項(xiàng)目,實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的交互

背景介紹

    mybatis原來(lái)是apache下面的一個(gè)開(kāi)源項(xiàng)目,名為ibatis

    2010年開(kāi)發(fā)團(tuán)隊(duì)轉(zhuǎn)投Google旗下,更名為MyBatis

MyBatis介紹

   MyBatis是一個(gè)優(yōu)秀的數(shù)據(jù)持久層框(dao層  數(shù)據(jù)訪問(wèn)層 數(shù)據(jù)持久層),也就是在Dao層處理數(shù)據(jù)

   MyBatis是對(duì)jdbc進(jìn)行封裝,避免了jabc中手動(dòng)設(shè)置參數(shù),手動(dòng)映射結(jié)果的操作

   MyBatis將jdbc中的接口進(jìn)行封裝,提供了他自己的類和接口實(shí)現(xiàn)

   MyBatis可以使用xml配置和注解的方式,將數(shù)據(jù)庫(kù)中記錄自動(dòng)映射到Java對(duì)象中,是一種ORM實(shí)現(xiàn)(對(duì)象關(guān)系映射) 將可以自動(dòng)將數(shù)據(jù)映射到對(duì)象中的這種框架,也成為orm框架

   MyBatis還提供了動(dòng)態(tài)sql和數(shù)據(jù)緩存

MyBatis搭建

創(chuàng)建一個(gè)maven對(duì)象導(dǎo)入MyBatis.jar包創(chuàng)建一個(gè)全局的MyBatis配置文件創(chuàng)建數(shù)據(jù)庫(kù)定義Dao接口,定義方法創(chuàng)建sql映射文件,編寫(xiě)sql測(cè)試MyBatis MyBatis官方網(wǎng)址

https://mybatis.org/mybatis-3/zh_CN/index.html

http://官方網(wǎng)址

第一步:創(chuàng)建maven對(duì)象

第二步:導(dǎo)入jar包

注:因?yàn)?strong>mybati是是對(duì)mysql的封裝,本質(zhì)上還是與數(shù)據(jù)的連接操作,所以我們依舊需要導(dǎo)入mysql jar包         

第三步:創(chuàng)建MyBatis配置文件并配置文件 

配置文件:

<?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>
    <!--   MyBatis配置文件-->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
    <!-- 為類配置別名-->
    <typeAliases>
        <!--<typeAlias type="com.kid.mybatispro.model.Admin" alias="Admin"></typeAlias>-->
        <package name="com.kid.mybatispro.model"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <!--type="POOLED" 使用數(shù)據(jù)庫(kù)連接池功能-->
            <dataSource type="POOLED">
                <!-- 數(shù)據(jù)庫(kù)連接的配置-->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/ssmdb?serverTimezone=Asia/Shanghai"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 注冊(cè)映射文件-->
    <mappers>
        <mapper resource="mappers/AdminMapper.xml"></mapper>
    </mappers>
</configuration>

數(shù)據(jù)庫(kù)連接池(POOED)

鏈接數(shù)據(jù)庫(kù),每次訪問(wèn)數(shù)據(jù)時(shí)候,創(chuàng)建一個(gè)Connection,用完關(guān)閉.但訪問(wèn)量大了后,每次都要?jiǎng)?chuàng)建新的連接對(duì)象,用完關(guān)閉,比較耗時(shí)

使用數(shù)據(jù)庫(kù)連接池,在池(集合)中事先創(chuàng)建一些連接對(duì)象,用戶訪問(wèn)時(shí),就直接池中獲取一個(gè)鏈接對(duì)象,用完不銷毀,還回池中.這樣就減少頻繁創(chuàng)建銷毀連接對(duì)象

第四步:創(chuàng)建數(shù)據(jù)庫(kù) 

 create table admin(
   id int  primary key auto_increment,
   account varchar(20),
   password varchar(20),
   gender CHAR(1)
 )

注:在數(shù)據(jù)庫(kù)中填入幾組值,方便后面使用 .

第五步:定義接口

package com.kid.mybatispro.dao;
import com.kid.mybatispro.model.Admin;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface AdminDao {
    //單個(gè)參數(shù)傳遞
    Admin findAdminById(int id);
    Admin findAdminByAccount(int id);
    //多個(gè)參數(shù)的傳遞
    Admin login(@Param("acc") String account, @Param("pass") String password);
    Admin login1(Admin admin);
    // 添加數(shù)據(jù)
    void insertAdmin(Admin admin);
    void deleteAdmin(int id);
    void updateAdmin(Admin admin);
    int findAdminCount();
    String findAdminId(String account);
    List<Admin> findAdmins();
}

注:接口中定義我們所需的操作

第六步:創(chuàng)建sql映射文件,編寫(xiě)sql

代碼:

<?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">
<mapper namespace="接口的地址">
<select id="findAdminById" parameterType="int" resultType="com.ffyc.mybatis.model.Admin">
select * from admin where id = #{id} </select> </mapper>

代碼解讀:

 注:我們可以在配置文件中為類定義別名

我們就就可以簡(jiǎn)寫(xiě)為:

第七步:測(cè)試MyBatis

第一步:讀取配置文件

讀取配置文件

Reader reader = Resources.getResourceAsReader("mybatis-config.xml");

mybatis-config.xml---->為我們定義的配置文件名(創(chuàng)建的第一個(gè).xml文件)

第二步:創(chuàng)建 SqlSessionFactory

SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);

read---->上面創(chuàng)建的對(duì)象

注:創(chuàng)建 SqlSessionFactory 負(fù)責(zé)創(chuàng)建SqlSession對(duì)象(連接數(shù)據(jù)庫(kù)的會(huì)話對(duì)象,類似Connection) SqlSessionFactory對(duì)象只需要?jiǎng)?chuàng)建一次,不需要銷毀

 第三步:創(chuàng)建SqlSession

SqlSession sqlSession = sessionFactory.openSession();

第四步:獲得接口代理對(duì)象

sqlSession.getMapper(接口.class); sqlSession .close();關(guān)閉 

代碼:

    public static void main(String[] args) throws IOException {
        //MyBatis讀取配置文件
        Reader reader = Resources.getResourceAsReader("mybatis.xml");
        //創(chuàng)建 SqlSessionFactory   負(fù)責(zé)創(chuàng)建SqlSession對(duì)象(連接數(shù)據(jù)庫(kù)的會(huì)話對(duì)象,類似Connection)
        //SqlSessionFactory對(duì)象只需要?jiǎng)?chuàng)建一次,不需要銷毀
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        //創(chuàng)建SqlSession對(duì)象
        SqlSession sqlSession = sessionFactory.openSession();
        //創(chuàng)建接口的代理對(duì)象
        AdminDao adminDao = sqlSession.getMapper(AdminDao.class);
        Admin admin = adminDao.findAdminById(1); //讓代理對(duì)象帶我們巧用映射文件中與此接口中相同名稱的方法
        System.out.println(admin);
    }

到此這篇關(guān)于MyBatis框架搭建與代碼解讀的文章就介紹到這了,更多相關(guān)MyBatis框架搭建內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論