日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MyBatis-学习笔记02【02.Mybatis入门案例】

發(fā)布時間:2024/9/30 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MyBatis-学习笔记02【02.Mybatis入门案例】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
  • Java后端 學(xué)習(xí)路線 筆記匯總表【黑馬程序員】
  • MyBatis-學(xué)習(xí)筆記01【01.Mybatis課程介紹及環(huán)境搭建】【day01】
  • MyBatis-學(xué)習(xí)筆記02【02.Mybatis入門案例】
  • MyBatis-學(xué)習(xí)筆記03【03.自定義Mybatis框架】
  • MyBatis-學(xué)習(xí)筆記04【04.自定義Mybatis框架基于注解開發(fā)】【day02】
  • MyBatis-學(xué)習(xí)筆記05【05.使用Mybatis完成CRUD】
  • MyBatis-學(xué)習(xí)筆記06【06.使用Mybatis完成DAO層的開發(fā)】
  • MyBatis-學(xué)習(xí)筆記07【07.Mybatis的連接池及事務(wù)】【day03】
  • MyBatis-學(xué)習(xí)筆記08【08.動態(tài)SQL】
  • MyBatis-學(xué)習(xí)筆記09【09.Mybatis的多表操作】
  • MyBatis-學(xué)習(xí)筆記10【10.JNDI擴(kuò)展知識】
  • MyBatis-學(xué)習(xí)筆記11【11.Mybatis的緩存】【day04】
  • MyBatis-學(xué)習(xí)筆記12【12.Mybatis注解開發(fā)】
  • 目錄

    1 mybatis的入門

    在resources文件夾下 導(dǎo)入log4j.properties

    創(chuàng)建測試類

    2 mybatis入門案例中的設(shè)計模式分析

    3 mybatis注解開發(fā)和編寫dao實現(xiàn)類的方式

    注解annotation的使用

    XML配置方式vs注解配置方式

    MyBatis使用dao實現(xiàn)類

    結(jié)構(gòu)圖

    UserDaoImpl.java

    MybatisTest.java


    mybatis框架 共四天 第一天:mybatis入門mybatis的概述mybatis的環(huán)境搭建mybatis入門案例自定義mybatis框架(主要的目的是為了讓大家了解mybatis中執(zhí)行細(xì)節(jié)) 第二天:mybatis基本使用mybatis的單表crud操作mybatis的參數(shù)和返回值mybatis的dao編寫mybatis配置的細(xì)節(jié)幾個標(biāo)簽的使用 第三天:mybatis的深入和多表mybatis的連接池mybatis的事務(wù)控制及設(shè)計的方法mybatis的多表查詢一對多(多對一)多對多 第四天:mybatis的緩存和注解開發(fā)mybatis中的加載時機(jī)(查詢的時機(jī))mybatis中的一級緩存和二級緩存mybatis的注解開發(fā)單表CRUD多表查詢 ----------------------------------------------------------- 1、什么是框架?它是我們軟件開發(fā)中的一套解決方案,不同的框架解決的是不同的問題。使用框架的好處:框架封裝了很多的細(xì)節(jié),使開發(fā)者可以使用極簡的方式實現(xiàn)功能。大大提高開發(fā)效率。 2、三層架構(gòu)表現(xiàn)層:是用于展示數(shù)據(jù)的業(yè)務(wù)層:是處理業(yè)務(wù)需求持久層:是和數(shù)據(jù)庫交互的 3、持久層技術(shù)解決方案JDBC技術(shù):ConnectionPreparedStatementResultSetSpring的JdbcTemplate:Spring中對jdbc的簡單封裝Apache的DBUtils:它和Spring的JdbcTemplate很像,也是對Jdbc的簡單封裝以上這些都不是框架JDBC是規(guī)范Spring的JdbcTemplate和Apache的DBUtils都只是工具類 4、mybatis的概述mybatis是一個持久層框架,用java編寫的。它封裝了jdbc操作的很多細(xì)節(jié),使開發(fā)者只需要關(guān)注sql語句本身,而無需關(guān)注注冊驅(qū)動,創(chuàng)建連接等繁雜過程它使用了ORM思想實現(xiàn)了結(jié)果集的封裝。ORM:Object Relational Mappging 對象關(guān)系映射簡單的說:就是把數(shù)據(jù)庫表和實體類及實體類的屬性對應(yīng)起來讓我們可以操作實體類就實現(xiàn)操作數(shù)據(jù)庫表。user Userid userIduser_name userName今天我們需要做到:實體類中的屬性和數(shù)據(jù)庫表的字段名稱保持一致。user數(shù)據(jù)表 User實體類id iduser_name user_name 5、mybatis的入門mybatis的環(huán)境搭建第一步:創(chuàng)建maven工程并導(dǎo)入坐標(biāo)第二步:創(chuàng)建實體類和dao的接口第三步:創(chuàng)建Mybatis的主配置文件 SqlMapConifg.xml第四步:創(chuàng)建映射配置文件 IUserDao.xml環(huán)境搭建的注意事項:第一個:創(chuàng)建IUserDao.xml 和 IUserDao.java時,名稱是為了和我們之前的知識保持一致。在Mybatis中它把持久層的操作接口名稱和映射文件也叫做:Mapper所以:IUserDao 和 IUserMapper是一樣的。(Mapper==Dao)第二個:在idea中創(chuàng)建目錄的時候,它和包是不一樣的包在創(chuàng)建時:com.itheima.dao是三級結(jié)構(gòu)目錄在創(chuàng)建時:com.itheima.dao是一級目錄第三個:mybatis的映射配置文件位置必須和dao接口的包結(jié)構(gòu)相同第四個:映射配置文件的mapper標(biāo)簽namespace屬性的取值必須是dao接口的全限定類名第五個:映射配置文件的操作配置(select),id屬性的取值必須是dao接口的方法名好處:當(dāng)我們遵從了第三、四、五點之后,我們在開發(fā)中就無須再寫dao的實現(xiàn)類。mybatis的入門案例第一步:讀取配置文件第二步:創(chuàng)建SqlSessionFactory工廠第三步:創(chuàng)建SqlSession第四步:創(chuàng)建Dao接口的代理對象第五步:執(zhí)行dao中的方法第六步:釋放資源注意事項:不要忘記在映射配置中告知mybatis要封裝到哪個實體類中配置的方式:指定實體類的全限定類名 resultType="com.itheima.domain.User"mybatis基于注解的入門案例:把IUserDao.xml移除,在dao接口的方法上使用@Select注解,并且指定SQL語句同時需要在SqlMapConfig.xml中的mapper配置時,使用class屬性指定dao接口的全限定類名。明確(說明)-mybatis可寫dao實現(xiàn)類:我們在實際開發(fā)中,都是越簡便越好,所以都是采用不寫dao實現(xiàn)類的方式,不管使用XML配置還是使用注解配置。但是Mybatis它是支持寫dao實現(xiàn)類的。 6、自定義Mybatis的分析:mybatis在使用代理dao的方式實現(xiàn)增刪改查時做什么事呢?只有兩件事:第一:創(chuàng)建代理對象;第二:在代理對象中調(diào)用selectList。自定義mybatis能通過入門案例看到類class Resourcesclass SqlSessionFactoryBuilderinterface SqlSessionFactoryinterface SqlSession

    1 mybatis的入門

    在resources文件夾下 導(dǎo)入log4j.properties

    # Set root category priority to INFO and its only appender to CONSOLE. #log4j.rootCategory=INFO, CONSOLE debug info warn error fatal log4j.rootCategory=debug, CONSOLE, LOGFILE# Set the enterprise logger category to FATAL and its only appender to CONSOLE. log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE# CONSOLE is set to be a ConsoleAppender using a PatternLayout. log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n# LOGFILE is set to be a File appender using a PatternLayout. log4j.appender.LOGFILE=org.apache.log4j.FileAppender log4j.appender.LOGFILE.File=d:\axis.log log4j.appender.LOGFILE.Append=true log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

    創(chuàng)建測試類

    package com.itheima.test;import com.itheima.dao.IUserDao; import com.itheima.domain.User; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.InputStream; import java.util.List;/*** mybatis的入門案例*/ public class MybatisTest {/*** 入門案例** @param args*/public static void main(String[] args) throws Exception {//1.讀取配置文件 加載文件中的信息InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");//連接數(shù)據(jù)庫//2.創(chuàng)建SqlSessionFactory工廠,有了工廠生產(chǎn)操作對象SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();SqlSessionFactory factory = builder.build(in); // SqlSessionFactory接口//3.使用工廠生產(chǎn)SqlSession對象,這個對象操作數(shù)據(jù)庫SqlSession session = factory.openSession();//4.使用SqlSession創(chuàng)建Dao接口的代理對象IUserDao userDao = session.getMapper(IUserDao.class);//代理方式不寫dao接口//5.使用代理對象執(zhí)行方法List<User> users = userDao.findAll();for (User user : users) {System.out.println(user);}//6.釋放資源session.close();in.close();} }

    2 mybatis入門案例中的設(shè)計模式分析

    每次多創(chuàng)建一個類的優(yōu)勢:靈活封裝,使得開發(fā)者在應(yīng)用的時候 有更多的選擇。

    備注:這一小節(jié),老師就講了這套代碼!分析的很詳細(xì),紙質(zhì)筆記 不太詳細(xì)!

    入門案例的分析

    3 mybatis注解開發(fā)和編寫dao實現(xiàn)類的方式

    mybatis的入門案例
    ?? ??? ?第一步:讀取配置文件
    ?? ??? ?第二步:創(chuàng)建SqlSessionFactory工廠
    ?? ??? ?第三步:創(chuàng)建SqlSession
    ?? ??? ?第四步:創(chuàng)建Dao接口的代理對象
    ?? ??? ?第五步:執(zhí)行dao中的方法
    ?? ??? ?第六步:釋放資源

    ?? ??? ?注意事項:
    ?? ??? ??? ?不要忘記在映射配置中告知mybatis要封裝到哪個實體類中
    ?? ??? ??? ?配置的方式:指定實體類的全限定類名 resultType="com.itheima.domain.User"
    ? ? ? ? mybatis基于注解的入門案例:
    ?? ??? ??? ?把IUserDao.xml移除,在dao接口的方法上使用@Select注解,并且指定SQL語句
    ?? ??? ??? ?同時需要在SqlMapConfig.xml中的mapper配置時,使用class屬性指定dao接口的全限定類名。
    ?? ??? ?明確(說明)-mybatis可寫dao實現(xiàn)類:
    ?? ??? ??? ?我們在實際開發(fā)中,都是越簡便越好,所以都是采用不寫dao實現(xiàn)類的方式,不管使用XML配置還是使用注解配置。
    ?? ??? ??? ?但是Mybatis它是支持寫dao實現(xiàn)類的。

    注解annotation的使用

    day01_eesy_02mybatis_ennotation

    XML配置方式vs注解配置方式

    注解配置方式xml配置方式要簡單許多,注解方式簡化開發(fā)。

    ???????

    MyBatis使用dao實現(xiàn)類

    mybatis可以實現(xiàn)dao實現(xiàn)類的功能,所以寫dao實現(xiàn)類:會增加開發(fā)時間,于是沒有太大的意義。

    dao實現(xiàn)類的成功查詢結(jié)果圖:

    結(jié)構(gòu)圖

    UserDaoImpl.java

    package com.itheima.dao.impl;import com.itheima.dao.IUserDao; import com.itheima.domain.User; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory;import java.util.List;public class UserDaoImpl implements IUserDao {private SqlSessionFactory factory;public UserDaoImpl(SqlSessionFactory factory) { // 更改默認(rèn)構(gòu)造函數(shù)this.factory = factory; // 使用factory得到session}public List<User> findAll() {//1.使用工廠創(chuàng)建SqlSession對象SqlSession session = factory.openSession(); // 使用factory得到session//2.使用session執(zhí)行查詢所有用戶的方法List<User> users = session.selectList("com.itheima.dao.IUserDao.findAll");//通過配置拿到sql語句session.close();//3.返回查詢結(jié)果return users;} }

    MybatisTest.java

    package com.itheima.test;import com.itheima.dao.IUserDao; import com.itheima.dao.impl.UserDaoImpl; import com.itheima.domain.User; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.InputStream; import java.util.List;/*** mybatis的入門案例*/ public class MybatisTest {/*** 入門案例** @param args*/public static void main(String[] args) throws Exception {//1.讀取配置文件InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");//2.創(chuàng)建SqlSessionFactory工廠SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();SqlSessionFactory factory = builder.build(in);//3.使用工廠創(chuàng)建dao對象IUserDao userDao = new UserDaoImpl(factory);//4.使用代理對象執(zhí)行方法List<User> users = userDao.findAll();for (User user : users) {System.out.println(user);}//5.釋放資源in.close();} }

    把現(xiàn)在的工作做好,才能幻想將來的事情,專注于眼前的事情,對于尚未發(fā)生的事情而陷入無休止的憂慮之中,對事情毫無幫助,反而為自己憑添了煩惱。

    總結(jié)

    以上是生活随笔為你收集整理的MyBatis-学习笔记02【02.Mybatis入门案例】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。