最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MyBatis入門學(xué)習(xí)教程(一)-MyBatis快速入門

 更新時(shí)間:2015年08月11日 11:51:52   作者:孤傲蒼狼  
MyBatis是一個(gè)支持普通SQL查詢,存儲(chǔ)過程和高級(jí)映射的優(yōu)秀持久層框架,這篇文章主要給大家分享MyBatis入門學(xué)習(xí)教程(一)-MyBatis快速入門,需要的朋友可以參考下

      MyBatis 本是apache的一個(gè)開源項(xiàng)目iBatis, 2010年這個(gè)項(xiàng)目由apache software foundation 遷移到了google code,并且改名為MyBatis 。2013年11月遷移到Github。

iBATIS一詞來源于“internet”和“abatis”的組合,是一個(gè)基于Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO)

首先給大家介紹MyBatis的含義

  MyBatis是一個(gè)支持普通sql查詢,存儲(chǔ)過程和高級(jí)映射的優(yōu)秀持久層框架。MyBatis消除了幾乎所有的JDBC代碼和參數(shù)的手工設(shè)置以及對(duì)結(jié)果集的檢索封裝。MyBatis可以使用簡單的XML或注解用于配置和原始映射,將接口和Java的POJO(Plain Old Java Objects,普通的Java對(duì)象)映射成數(shù)據(jù)庫中的記錄。

二、mybatis快速入門

2.1、準(zhǔn)備開發(fā)環(huán)境

 1、創(chuàng)建測(cè)試項(xiàng)目,普通java項(xiàng)目或者是JavaWeb項(xiàng)目均可,如下圖所示:

  

2、添加相應(yīng)的jar包

  【mybatis】

         mybatis-3.1.1.jar

  【MYSQL驅(qū)動(dòng)包】
    mysql-connector-java-5.1.7-bin.jar

   

3、創(chuàng)建數(shù)據(jù)庫和表,針對(duì)MySQL數(shù)據(jù)庫

  SQL腳本如下:

create database mybatis;
 use mybatis;
 CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(), age INT);
 INSERT INTO users(NAME, age) VALUES('孤傲蒼狼', );
 INSERT INTO users(NAME, age) VALUES('白虎神皇', );

  將SQL腳本在MySQL數(shù)據(jù)庫中執(zhí)行,完成創(chuàng)建數(shù)據(jù)庫和表的操作,如下:

  

  到此,前期的開發(fā)環(huán)境準(zhǔn)備工作全部完成。

2.2、使用MyBatis查詢表中的數(shù)據(jù)

  1、添加Mybatis的配置文件conf.xml

  在src目錄下創(chuàng)建一個(gè)conf.xml文件,如下圖所示:

  

  conf.xml文件中的內(nèi)容如下:

<?xml version="." encoding="UTF-"?>
 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config .//EN" "http://mybatis.org/dtd/mybatis--config.dtd">
 <configuration>
   <environments default="development">
     <environment id="development">
       <transactionManager type="JDBC" />
       <!-- 配置數(shù)據(jù)庫連接信息 -->
       <dataSource type="POOLED">
         <property name="driver" value="com.mysql.jdbc.Driver" />
         <property name="url" value="jdbc:mysql://localhost:/mybatis" />
         <property name="username" value="root" />
         <property name="password" value="XDP" />
       </dataSource>
     </environment>
   </environments>
   
 </configuration>

  2、定義表所對(duì)應(yīng)的實(shí)體類,如下圖所示:

  

  User類的代碼如下:

package me.gacl.domain;
 
 /**
  * @author gacl
  * users表所對(duì)應(yīng)的實(shí)體類
  */
 public class User {
 
   //實(shí)體類的屬性和表的字段名稱一一對(duì)應(yīng)
   private int id;
   private String name;
   private int age;
 
   public int getId() {
     return id;
   }
 
   public void setId(int id) {
     this.id = id;
   }
 
   public String getName() {
     return name;
   }
 
   public void setName(String name) {
     this.name = name;
   }
 
   public int getAge() {
     return age;
   }
 
   public void setAge(int age) {
     this.age = age;
   }
 
   @Override
   public String toString() {
     return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
   }
 }

  3、定義操作users表的sql映射文件userMapper.xml

  創(chuàng)建一個(gè)me.gacl.mapping包,專門用于存放sql映射文件,在包中創(chuàng)建一個(gè)userMapper.xml文件,如下圖所示:

  

  userMapper.xml文件的內(nèi)容如下:

 <?xml version="." encoding="UTF-" ?>
  <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper .//EN" "

<!-- 為這個(gè)mapper指定一個(gè)唯一的namespace,namespace的值習(xí)慣上設(shè)置成包名+sql映射文件名,這樣就能夠保證namespace的值是唯一的

  例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除后綴)

-->
  <mapper namespace="me.gacl.mapping.userMapper">
      <!-- 在select標(biāo)簽中編寫查詢的SQL語句, 設(shè)置select標(biāo)簽的id屬性為getUser,id屬性值必須是唯一的,不能夠重復(fù)
      使用parameterType屬性指明查詢時(shí)使用的參數(shù)類型,resultType屬性指明查詢返回的結(jié)果集類型
      resultType="me.gacl.domain.User"就表示將查詢結(jié)果封裝成一個(gè)User類的對(duì)象返回
     User類就是users表所對(duì)應(yīng)的實(shí)體類
     -->

     <!--
         根據(jù)id查詢得到一個(gè)user對(duì)象
      -->

  <select id="getUser" parameterType="int" 
     resultType="me.gacl.domain.User">
     select * from users where id=#{id}
   </select>
 </mapper>

  4、在conf.xml文件中注冊(cè)u(píng)serMapper.xml文件

 

 <?xml version="." encoding="UTF-"?>
 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config .//EN" "http://mybatis.org/dtd/mybatis--config.dtd">
 <configuration>
   <environments default="development">
     <environment id="development">
       <transactionManager type="JDBC" />
       <!-- 配置數(shù)據(jù)庫連接信息 -->
       <dataSource type="POOLED">
         <property name="driver" value="com.mysql.jdbc.Driver" />
         <property name="url" value="jdbc:mysql://localhost:/mybatis" />
         <property name="username" value="root" />
         <property name="password" value="XDP" />
       </dataSource>
     </environment>
   </environments>
   
   <mappers>
     <!-- 注冊(cè)u(píng)serMapper.xml文件, 
     userMapper.xml位于me.gacl.mapping這個(gè)包下,所以resource寫成me/gacl/mapping/userMapper.xml-->
     <mapper resource="me/gacl/mapping/userMapper.xml"/>
   </mappers>
   
 </configuration>

  5、編寫測(cè)試代碼:執(zhí)行定義的select語句

  創(chuàng)建一個(gè)Test1類,編寫如下的測(cè)試代碼:

package me.gacl.test;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import me.gacl.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;
public class Test {
  public static void main(String[] args) throws IOException {
    //mybatis的配置文件
    String resource = "conf.xml";
    //使用類加載器加載mybatis的配置文件(它也加載關(guān)聯(lián)的映射文件)
    InputStream is = Test.class.getClassLoader().getResourceAsStream(resource);
    //構(gòu)建sqlSession的工廠
    SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
    //使用MyBatis提供的Resources類加載mybatis的配置文件(它也加載關(guān)聯(lián)的映射文件)
    //Reader reader = Resources.getResourceAsReader(resource); 
    //構(gòu)建sqlSession的工廠
    //SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
    //創(chuàng)建能執(zhí)行映射文件中sql的sqlSession
    SqlSession session = sessionFactory.openSession();
    /**
     * 映射sql的標(biāo)識(shí)字符串,
     * me.gacl.mapping.userMapper是userMapper.xml文件中mapper標(biāo)簽的namespace屬性的值,
     * getUser是select標(biāo)簽的id屬性值,通過select標(biāo)簽的id屬性值就可以找到要執(zhí)行的SQL
     */
    String statement = "me.gacl.mapping.userMapper.getUser";//映射sql的標(biāo)識(shí)字符串
    //執(zhí)行查詢返回一個(gè)唯一user對(duì)象的sql
    User user = session.selectOne(statement, );
    System.out.println(user);
  }
}

  執(zhí)行結(jié)果如下:

  

有上圖可以看出,數(shù)據(jù)庫中記錄已經(jīng)成功查詢出來。

以上就是本文針對(duì)MyBatis入門學(xué)習(xí)教程(一)-MyBatis快速入門的全部內(nèi)容,希望對(duì)大家有所幫助。

相關(guān)文章

  • NoHttpResponseException異常解決優(yōu)化HttpClient配置以避免連接問題

    NoHttpResponseException異常解決優(yōu)化HttpClient配置以避免連接問題

    這篇文章主要為大家介紹了NoHttpResponseException異常解決,優(yōu)化HttpClient配置以避免連接問題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • java連接池Druid獲取連接getConnection示例詳解

    java連接池Druid獲取連接getConnection示例詳解

    這篇文章主要為大家介紹了java連接池Druid獲取連接getConnection示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • SpringCloud中的Ribbon負(fù)載均衡器詳細(xì)解析

    SpringCloud中的Ribbon負(fù)載均衡器詳細(xì)解析

    這篇文章主要介紹了SpringCloud中的Ribbon負(fù)載均衡器詳細(xì)解析,Ribbon 是一個(gè)基于 HTTP 和 TCP 的客戶端負(fù)載均衡工具,它基于 Netflix Ribbon 實(shí)現(xiàn),通過封裝可以讓我們輕松地將面向服務(wù)的 REST 模版請(qǐng)求自動(dòng)轉(zhuǎn)換成客戶端負(fù)載均衡的服務(wù)調(diào)用,需要的朋友可以參考下
    2024-01-01
  • Spring Cloud Ribbon配置詳解

    Spring Cloud Ribbon配置詳解

    這篇文章主要介紹了Spring Cloud Ribbon配置詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 解決Springboot項(xiàng)目bootstrap.yml不生效問題

    解決Springboot項(xiàng)目bootstrap.yml不生效問題

    Spring Boot 2.4版本開始,配置文件加載方式進(jìn)行了重構(gòu),只會(huì)識(shí)別application.* 配置文件,并不會(huì)自動(dòng)識(shí)別bootstrap.yml,所以本文給大家介紹Springboot項(xiàng)目bootstrap.yml不生效問題的解決方案,需要的朋友可以參考下
    2023-09-09
  • SpringCloud實(shí)現(xiàn)SSO 單點(diǎn)登錄的示例代碼

    SpringCloud實(shí)現(xiàn)SSO 單點(diǎn)登錄的示例代碼

    作為分布式項(xiàng)目,單點(diǎn)登錄是必不可少的,這篇文章主要介紹了SpringCloud實(shí)現(xiàn)SSO 單點(diǎn)登錄的示例代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2019-01-01
  • SpringBoot Nacos實(shí)現(xiàn)自動(dòng)刷新

    SpringBoot Nacos實(shí)現(xiàn)自動(dòng)刷新

    這篇文章主要介紹了SpringBoot Nacos實(shí)現(xiàn)自動(dòng)刷新,Nacos(Dynamic Naming and Configuration Service)是阿里巴巴開源的一個(gè)動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺(tái)
    2023-01-01
  • Java中的靜態(tài)代碼塊與構(gòu)造代碼塊詳解

    Java中的靜態(tài)代碼塊與構(gòu)造代碼塊詳解

    靜態(tài)代碼塊在JVM加載類時(shí)執(zhí)行,僅執(zhí)行一次,用于初始化靜態(tài)變量或執(zhí)行一次性設(shè)置,構(gòu)造代碼塊在每次創(chuàng)建對(duì)象時(shí)執(zhí)行,用于實(shí)例變量的初始化或執(zhí)行創(chuàng)建對(duì)象時(shí)的公共邏輯,靜態(tài)代碼塊按定義順序執(zhí)行,構(gòu)造代碼塊在構(gòu)造方法前執(zhí)行
    2024-11-11
  • 帶大家深入了解Spring事務(wù)

    帶大家深入了解Spring事務(wù)

    Spring框架提供統(tǒng)一的事務(wù)抽象,通過統(tǒng)一的編程模型使得應(yīng)用程序可以很容易地在不同的事務(wù)框架之間進(jìn)行切換. 在學(xué)習(xí)Spring事務(wù)前,我們先對(duì)數(shù)據(jù)庫事務(wù)進(jìn)行簡單的介紹。,需要的朋友可以參考下
    2021-05-05
  • Spring cloud 限流的多種方式

    Spring cloud 限流的多種方式

    在頻繁的網(wǎng)絡(luò)請(qǐng)求時(shí),服務(wù)有時(shí)候也會(huì)受到很大的壓力,尤其是那種網(wǎng)絡(luò)攻擊,非法的。這樣的情形有時(shí)候需要作一些限制。本文主要介紹了兩種限流方法,感興趣的可以了解一下
    2021-06-06

最新評(píng)論

陆河县| 泸水县| 虹口区| 丹棱县| 乌兰县| 乌兰县| 绥中县| 山西省| 辉南县| 泽州县| 仁寿县| 思南县| 吉木萨尔县| 加查县| 襄汾县| 图们市| 东方市| 图片| 清水河县| 平原县| 五指山市| 卢龙县| 陵川县| 霸州市| 红原县| 安陆市| 上栗县| 塔河县| 昌宁县| 横峰县| 龙口市| 乃东县| 开封市| 新宁县| 新平| 荆州市| 西藏| 庆元县| 天峻县| 抚顺县| 阳朔县|