乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Mybatis-入門

       印度阿三17 2019-08-16
      一、概述

      mybatis是一個(gè)持久層框架,用java編寫的。
      它封裝了jdbc操作的很多細(xì)節(jié),使開發(fā)者只需要關(guān)注sql語句本身,而無需關(guān)注注冊驅(qū)動(dòng),創(chuàng)建連接等繁雜過程
      它使用了ORM思想實(shí)現(xiàn)了結(jié)果集的封裝。

      • ORM:
        Object Relational Mappging 對象關(guān)系映射
        簡單的說:
        就是把數(shù)據(jù)庫表和實(shí)體類及實(shí)體類的屬性對應(yīng)起來
        讓我們可以操作實(shí)體類就實(shí)現(xiàn)操作數(shù)據(jù)庫表。
      二、mybatis的入門

      mybatis的環(huán)境搭建

      1. 創(chuàng)建maven工程并導(dǎo)入坐標(biāo)
      2. 創(chuàng)建實(shí)體類和dao的接口
      3. 創(chuàng)建Mybatis的主配置文件
        SqlMapConifg.xml
      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE configuration
              PUBLIC "-////DTD Config 3.0//EN"
              "http:///dtd/mybatis-3-config.dtd">
      
      <!--mybatis的主配置文件-->
      <configuration>
          <!--配置環(huán)境-->
          <environments default="mysql">
              <!--配置mysql的環(huán)境-->
              <environment id="mysql">
                  <transactionManager type="JDBC"></transactionManager>
                  <dataSource type="POOLED">
                      <property name="driver" value="com.mysql.jdbc.Driver"/>
                      <property name="url" value="jdbc:mysql://localhost:3306/eesy?serverTimezone=UTC"/>
                      <property name="username" value="root"/>
                      <property name="password" value="15436132"/>
                  </dataSource>
              </environment>
          </environments>
      	
      	<!--指定映射配置文件的位置,映射配置文件指的是每個(gè)dao配置的文件-->
          <mappers>
              <mapper resource="com/zg/IUserDao.xml"/>
          </mappers>
      </configuration>
      
      1. 創(chuàng)建映射配置文件
        IUserDao.xml
      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE mapper
              PUBLIC "-////DTD Mapper 3.0//EN"
              "http:///dtd/mybatis-3-mapper.dtd">
      <mapper namespace="com.zg.dao.IUserDao" resultType="com.zg.domain.User">//namespace屬性的取值必須是dao接口的全限定類名
          <select id="findAll"> 
              select * from user
          </select>
      </mapper>
      

      環(huán)境搭建的注意事項(xiàng):

      1. 創(chuàng)建IUserDao.xml 和 IUserDao.java時(shí)名稱是為了和我們之前的知識保持一致。
        在Mybatis中它把持久層的操作接口名稱和映射文件也叫做:Mapper
        所以:IUserDao 和 IUserMapper是一樣的
      2. 在idea中創(chuàng)建目錄的時(shí)候,它和包是不一樣的
        包在創(chuàng)建時(shí):com.itheima.dao它是三級結(jié)構(gòu)
        目錄在創(chuàng)建時(shí):com.itheima.dao是一級目錄
      3. mybatis的映射配置文件位置必須和dao接口的包結(jié)構(gòu)相同
      4. 映射配置文件的mapper標(biāo)簽namespace屬性的取值必須是dao接口的全限定類名
      5. 映射配置文件的操作配置(select),id屬性的取值必須是dao接口的方法名

      當(dāng)我們遵從了3,4,5點(diǎn)之后,我們在開發(fā)中就無須再寫dao的實(shí)現(xiàn)類。

      三、mybatis的入門案例

      除了上面所示代碼,還有
      實(shí)體類:User

      public class User  implements Serializable {
          private Integer id;
          private String username;
          private Date Birthday;
          private String sex;
          private String address;
      
          public Integer getId() {
              return id;
          }
      
          public void setId(Integer id) {
              this.id = id;
          }
      
          public String getUsername() {
              return username;
          }
      
          public void setUsername(String username) {
              this.username = username;
          }
      
          public Date getBirthday() {
              return Birthday;
          }
      
          public void setBirthday(Date birthday) {
              Birthday = birthday;
          }
      
          public String getSex() {
              return sex;
          }
      
          public void setSex(String sex) {
              this.sex = sex;
          }
      
          public String getAddress() {
              return address;
          }
      
          public void setAddress(String address) {
              this.address = address;
          }
      
          @Override
          public String toString() {
              return "User{"  
                      "id="   id  
                      ", username='"   username   '\''  
                      ", Birthday="   Birthday  
                      ", sex='"   sex   '\''  
                      ", address='"   address   '\''  
                      '}';
          }
      }
      
      

      持久層接口:IUserDao

      public interface IUserDao {
          List<User> findAll();
      }
      

      Test:

      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.使用工廠生產(chǎn)SqlSession對象
              SqlSession session = factory.openSession();
              //4.使用SqlSession創(chuàng)建Dao接口的代理對象
              IUserDao userDao = session.getMapper(IUserDao.class);
              //5.使用代理對象執(zhí)行方法
              List<User> users = userDao.findAll();
              for(User user : users){
                  System.out.println(user);
              }
              //6.釋放資源
              session.close();
              in.close();
          }
      }
      

      Mybatis基于注解的入門案例:

      1. 把IUserDao.xml移除,在dao接口的方法上使用@Select注解,并且指定SQL語句
      public interface IUserDao {
          /**
           * 查詢所有操作
           * @return
           */
          @Select("select * from user")
          List<User> findAll();
      }
      
      1. 同時(shí)需要在SqlMapConfig.xml中的mapper配置時(shí),使用class屬性指定dao接口的全限定類名。
          <mappers>
              <mapper class="com.zg.dao.IUserDao"/>
          </mappers>
      

      明確:
      我們在實(shí)際開發(fā)中,都是越簡便越好,所以都是采用不寫dao實(shí)現(xiàn)類的方式。不管使用XML還是注解配置。但是Mybatis它是支持寫dao實(shí)現(xiàn)類的。

      Mybatis使用代理Dao實(shí)現(xiàn)功能的代碼分析:
      在這里插入圖片描述

      四、自定義Mybatis的分析

      mybatis在使用代理dao的方式實(shí)現(xiàn)增刪改查時(shí)做什么事呢?
      只有兩件事:
      第一:創(chuàng)建代理對象
      第二:在代理對象中調(diào)用selectList

      自定義mybatis能通過入門案例看到的類
      class Resources
      class SqlSessionFactoryBuilder
      interface SqlSessionFactory
      interface SqlSession

      在這里插入圖片描述
      在這里插入圖片描述

      來源:https://www./content-4-393451.html

        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多