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

MyBatis快速入門

 更新時間:2017年03月15日 14:11:12   作者:codeRose  
MyBatis是支持普通SQL查詢,存儲過程和高級映射的優(yōu)秀持久層框架。MyBatis消除了幾乎所有的JDBC代碼和參數(shù)的手工設(shè)置以及結(jié)果集的檢索。想要學(xué)好它,那就要從MyBatis基礎(chǔ)知識學(xué)起,下面跟著小編一起來看下吧

一、MyBatis背景介紹

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

二、MyBatis開發(fā)環(huán)境搭建

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

1.在eclipse中新建一個javaweb項目MyBatis_Study

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

 mybatis-3.1.1.jar  

 mysql-connector-java-5.1.7-bin.jar

(注:可在網(wǎng)站 http://www.manyjar.com/showJarHot 搜索下載jar包)

3.將jar包拖到創(chuàng)建項目lib目錄下

4.用SQLyog工具創(chuàng)建數(shù)據(jù)庫mybatis

CREATE DATABASE mybatis;
USE mybatis;
CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(20),age INT);
INSERT INTO users(NAME,age) VALUES('codeRose',24);
INSERT INTO users(NAME,age) VALUES('codeRose',24);

全選中SQL腳本執(zhí)行創(chuàng)建數(shù)據(jù)庫和users表:

2.2、使用MyBatis查詢數(shù)據(jù)庫數(shù)據(jù)

1.創(chuàng)建MyBatis配置文件conf.xml(src目錄下)

conf.xml:

<?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>
 <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:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="" />
</dataSource>
</environment>
</environments>
</configuration>

2.定義users表中對應(yīng)的實(shí)體類User.java

User.java

package codeRose.dao;
public class User {
  //實(shí)體類的屬性與表中字段一一對應(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

<?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,namespace的值為包名+sql映射文件名,這樣就能保證namespace值唯一 -->
<mapper namespace="codeRose.mapping.userMapper">
  <!-- 在select標(biāo)簽中編寫查詢的SQL語句, 設(shè)置select標(biāo)簽的id屬性為getUser,id屬性值必須是唯一的,不能夠重復(fù) 使用parameterType屬性指明查詢時使用的參數(shù)類型,resultType屬性指明查詢返回的結(jié)果集類型 
    resultType="me.gacl.domain.User"就表示將查詢結(jié)果封裝成一個User類的對象返回 User類就是users表所對應(yīng)的實(shí)體類 -->
  <!-- 根據(jù)id查詢得到一個user對象 -->
  <select id="getUser" parameterType="int" resultType="codeRose.dao.User">
    select * from users where id=#{id}
  </select>
</mapper>

4.在conf.xml中注冊userMapper.xml

<?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>
 <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:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="" />
</dataSource>
</environment>
</environments>
<!-- 注冊sql映射文件 -->
<mappers>
<!-- 包名/文件名 -->
<mapper resource="codeRose/mapping/userMapper.xml"/>
</mappers>
</configuration>

5.編寫測試代碼Test.java

package codeRose.test;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import codeRose.dao.User;
public class Test {
  public static void main(String[] args) {
    // 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的配置文件
    //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)識字符串,
     * codeRose.mapping.userMapper是userMapper.xml文件中mapper標(biāo)簽的namespace屬性的值,
     * getUser是select標(biāo)簽的id屬性值,通過select標(biāo)簽的id屬性值就可以找到要執(zhí)行的SQL
     */
    String statement="codeRose.mapping.userMapper.getUser";
    //執(zhí)行查詢返回一個唯一user對線的sql
    User user=session.selectOne(statement,1);
    System.out.println("查詢所得的數(shù)據(jù)庫信息為:"+user);
  }
}

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

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關(guān)文章

  • Vue.Js及Java實(shí)現(xiàn)文件分片上傳代碼實(shí)例

    Vue.Js及Java實(shí)現(xiàn)文件分片上傳代碼實(shí)例

    這篇文章主要介紹了Vue.Js及Java實(shí)現(xiàn)文件分片上傳代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • 基于Java8并行流(parallelStream)的注意點(diǎn)

    基于Java8并行流(parallelStream)的注意點(diǎn)

    這篇文章主要介紹了Java8并行流(parallelStream)的注意點(diǎn),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java正則表達(dá)式之Pattern類實(shí)例詳解

    Java正則表達(dá)式之Pattern類實(shí)例詳解

    Pattern類的作用在于編譯正則表達(dá)式后創(chuàng)建一個匹配模式,下面這篇文章主要給大家介紹了關(guān)于Java正則表達(dá)式之Pattern類的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • spring boot security設(shè)置忽略地址不生效的解決

    spring boot security設(shè)置忽略地址不生效的解決

    這篇文章主要介紹了spring boot security設(shè)置忽略地址不生效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 詳解spring cloud分布式關(guān)于熔斷器

    詳解spring cloud分布式關(guān)于熔斷器

    這篇文章主要介紹了詳解spring cloud分布式關(guān)于熔斷器,詳細(xì)的介紹了什么是熔斷器和使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • 淺析java中static的用法

    淺析java中static的用法

    這篇文章主要介紹了java中static的用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Spring框架構(gòu)造注入type屬性實(shí)例詳解

    Spring框架構(gòu)造注入type屬性實(shí)例詳解

    這篇文章主要介紹了Spring框架構(gòu)造注入type屬性實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • 詳解Spring Security如何配置JSON登錄

    詳解Spring Security如何配置JSON登錄

    這篇文章主要介紹了詳解Spring Security如何配置JSON登錄,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • windows 部署JAVA環(huán)境安裝iDea的詳細(xì)步驟

    windows 部署JAVA環(huán)境安裝iDea的詳細(xì)步驟

    這篇文章主要介紹了windows 部署JAVA環(huán)境安裝iDea的詳細(xì)步驟,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Java定時任務(wù)取消的示例代碼

    Java定時任務(wù)取消的示例代碼

    java定時任務(wù)如何取消,并比如,我之前想每周二晚上6點(diǎn)自動生成一條devops流水線,現(xiàn)在我想停掉,下面給大家分享java定時任務(wù)取消的示例代碼,演示如何創(chuàng)建一個每周二晚上6點(diǎn)自動生成一條devops流水線的定時任務(wù),感興趣的朋友一起看看吧
    2024-02-02

最新評論

邢台市| 台安县| 怀安县| 静海县| 胶州市| 大城县| 华坪县| 淮北市| 中宁县| 天台县| 安西县| 南康市| 吴旗县| 海门市| 轮台县| 樟树市| 灌阳县| 区。| 孙吴县| 墨竹工卡县| 金湖县| 东至县| 江源县| 黄陵县| 阿坝| 承德县| 定西市| 云安县| 南木林县| 潼关县| 行唐县| 泾源县| 武陟县| 新乡市| 枝江市| 梁山县| 内乡县| 邵武市| 富锦市| 望谟县| 邓州市|