0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

mybatis快速入門(mén)

lhl545545 ? 來(lái)源:電子發(fā)燒友網(wǎng) ? 2018-02-24 09:41 ? 次閱讀

mybatis快速入門(mén)

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

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

mybatis快速入門(mén)

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

【mybatis】

mybatis-3.1.1.jar

【MYSQL驅(qū)動(dòng)包】

mysql-connector-java-5.1.7-bin.jar

mybatis快速入門(mén)

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

SQL腳本如下:

1 create database mybatis;

2 use mybatis;

3 CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT);

4 INSERT INTO users(NAME, age) VALUES(‘孤傲蒼狼’, 27);

5 INSERT INTO users(NAME, age) VALUES(‘白虎神皇’, 27);

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

mybatis快速入門(mén)

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

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

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

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

mybatis快速入門(mén)

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

1 《?xml version=“1.0” encoding=“UTF-8”?>

2 《!DOCTYPE configuration PUBLIC “-//mybatis.org//DTD Config 3.0//EN” “http://mybatis.org/dtd/mybatis-3-config.dtd”>

3 《configuration>

4 《environments default=“development”>

5 《environment id=“development”>

6 《transactionManager type=“JDBC” />

7 《!-- 配置數(shù)據(jù)庫(kù)連接信息 -->

8 《dataSource type=“POOLED”>

9 《property name=“driver” value=“com.mysql.jdbc.Driver” />

10 《property name=“url” value=“jdbc:mysql://localhost:3306/mybatis” />

11 《property name=“username” value=“root” />

12 《property name=“password” value=“XDP” />

13 《/dataSource>

14 《/environment>

15 《/environments>

16

17 《/configuration>

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

mybatis快速入門(mén)

User類的代碼如下:

1 package me.gacl.domain;

2

3 /**

4 * @author gacl

5 * users表所對(duì)應(yīng)的實(shí)體類

6 */

7 public class User {

8

9 //實(shí)體類的屬性和表的字段名稱一一對(duì)應(yīng)

10 private int id;

11 private String name;

12 private int age;

13

14 public int getId() {

15 return id;

16 }

17

18 public void setId(int id) {

19 this.id = id;

20 }

21

22 public String getName() {

23 return name;

24 }

25

26 public void setName(String name) {

27 this.name = name;

28 }

29

30 public int getAge() {

31 return age;

32 }

33

34 public void setAge(int age) {

35 this.age = age;

36 }

37

38 @Override

39 public String toString() {

40 return “User [id=” + id + “, name=” + name + “, age=” + age + “]”;

41 }

42 }

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

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

mybatis快速入門(mén)

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

1 《?xml version=“1.0” encoding=“UTF-8” ?>

2 《!DOCTYPE mapper PUBLIC “-//mybatis.org//DTD Mapper 3.0//EN” “http://mybatis.org/dtd/mybatis-3-mapper.dtd”>

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

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

5 -->

6 《mapper namespace=“me.gacl.mapping.userMapper”>

7 《!-- 在select標(biāo)簽中編寫(xiě)查詢的SQL語(yǔ)句, 設(shè)置select標(biāo)簽的id屬性為getUser,id屬性值必須是唯一的,不能夠重復(fù)

8 使用parameterType屬性指明查詢時(shí)使用的參數(shù)類型,resultType屬性指明查詢返回的結(jié)果集類型

9 resultType=“me.gacl.domain.User”就表示將查詢結(jié)果封裝成一個(gè)User類的對(duì)象返回

10 User類就是users表所對(duì)應(yīng)的實(shí)體類

11 -->

12 《!--

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

14 -->

15 《select id=“getUser” parameterType=“int”

16 resultType=“me.gacl.domain.User”>

17 select * from users where id=#{id}

18 《/select>

19 《/mapper>

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

1 《?xml version=“1.0” encoding=“UTF-8”?>

2 《!DOCTYPE configuration PUBLIC “-//mybatis.org//DTD Config 3.0//EN” “http://mybatis.org/dtd/mybatis-3-config.dtd”>

3 《configuration>

4 《environments default=“development”>

5 《environment id=“development”>

6 《transactionManager type=“JDBC” />

7 《!-- 配置數(shù)據(jù)庫(kù)連接信息 -->

8 《dataSource type=“POOLED”>

9 《property name=“driver” value=“com.mysql.jdbc.Driver” />

10 《property name=“url” value=“jdbc:mysql://localhost:3306/mybatis” />

11 《property name=“username” value=“root” />

12 《property name=“password” value=“XDP” />

13 《/dataSource>

14 《/environment>

15 《/environments>

16

17 《mappers>

18 《!-- 注冊(cè)u(píng)serMapper.xml文件,

19 userMapper.xml位于me.gacl.mapping這個(gè)包下,所以resource寫(xiě)成me/gacl/mapping/userMapper.xml-->

20 《mapper resource=“me/gacl/mapping/userMapper.xml”/>

21 《/mappers>

22

23 《/configuration>

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

創(chuàng)建一個(gè)Test1類,編寫(xiě)如下的測(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 Test1 {

public static void main(String[] args) throws IOException {

//mybatis的配置文件

String resource = “conf.xml”;

//使用類加載器加載mybatis的配置文件(它也加載關(guān)聯(lián)的映射文件)

InputStream is = Test1.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屬性值,通過(guò)select標(biāo)簽的id屬性值就可以找到要執(zhí)行的SQL

*/

//在命名空間“me.gacl.mapping.userMapper”中定義了一個(gè)名為“getUser”的映射語(yǔ)句,

//這樣它就允許你使用指定的完全限定名“me.gacl.mapping.userMapper.getUser”來(lái)調(diào)用映射語(yǔ)句,

//格式:命名空間名(namespace)+映射語(yǔ)句名(id)

String statement = “me.gacl.mapping.userMapper.getUser”;//映射sql的標(biāo)識(shí)字符串

//執(zhí)行查詢返回一個(gè)唯一user對(duì)象的sql

User user = session.selectOne(statement, 1);

System.out.println(user);

}

}

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

mybatis快速入門(mén)

可以看到,數(shù)據(jù)庫(kù)中的記錄已經(jīng)成功查詢出來(lái)了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mybatis
    +關(guān)注

    關(guān)注

    0

    文章

    58

    瀏覽量

    6691
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    PGA460-Q1 EVM快速入門(mén)指南

    電子發(fā)燒友網(wǎng)站提供《PGA460-Q1 EVM快速入門(mén)指南.pdf》資料免費(fèi)下載
    發(fā)表于 08-27 11:19 ?0次下載
    PGA460-Q1 EVM<b class='flag-5'>快速</b><b class='flag-5'>入門(mén)</b>指南

    AM263x控制卡快速入門(mén)指南

    電子發(fā)燒友網(wǎng)站提供《AM263x控制卡快速入門(mén)指南.pdf》資料免費(fèi)下載
    發(fā)表于 08-27 10:35 ?0次下載
    AM263x控制卡<b class='flag-5'>快速</b><b class='flag-5'>入門(mén)</b>指南

    AM263Px控制卡快速入門(mén)指南

    電子發(fā)燒友網(wǎng)站提供《AM263Px控制卡快速入門(mén)指南.pdf》資料免費(fèi)下載
    發(fā)表于 08-26 09:24 ?0次下載
    AM263Px控制卡<b class='flag-5'>快速</b><b class='flag-5'>入門(mén)</b>指南

    如何快速入門(mén)FPGA?

    快速入門(mén)FPGA可以遵循以下步驟: 理解FPGA基礎(chǔ)知識(shí): FPGA(Field Programmable Gate Array)即現(xiàn)場(chǎng)可編程門(mén)陣列,是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制
    發(fā)表于 04-28 08:54

    CW32快速開(kāi)發(fā)入門(mén)

    CW32快速開(kāi)發(fā)入門(mén)
    的頭像 發(fā)表于 04-24 18:56 ?1684次閱讀
    CW32<b class='flag-5'>快速</b>開(kāi)發(fā)<b class='flag-5'>入門(mén)</b>

    allegro快速入門(mén)教程

    電子發(fā)燒友網(wǎng)站提供《allegro快速入門(mén)教程.pdf》資料免費(fèi)下載
    發(fā)表于 02-29 09:32 ?67次下載

    RENESAS環(huán)境傳感器快速入門(mén)指南

    電子發(fā)燒友網(wǎng)站提供《RENESAS環(huán)境傳感器快速入門(mén)指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-29 09:32 ?0次下載
    RENESAS環(huán)境傳感器<b class='flag-5'>快速</b><b class='flag-5'>入門(mén)</b>指南

    mybatis中$和井號(hào)區(qū)別

    MyBatis是一個(gè)開(kāi)源的Java持久層框架,它提供了許多強(qiáng)大的功能用于簡(jiǎn)化數(shù)據(jù)庫(kù)操作。在MyBatis中,我們可以使用兩種方式來(lái)動(dòng)態(tài)生成SQL語(yǔ)句:$和#。 和#都可以用來(lái)替換SQL語(yǔ)句中的參數(shù)
    的頭像 發(fā)表于 12-03 14:53 ?806次閱讀

    mybatis框架的主要作用

    。MyBatis框架的主要作用包括以下幾個(gè)方面。 數(shù)據(jù)庫(kù)操作的簡(jiǎn)化和標(biāo)準(zhǔn)化: MyBatis框架提供了一種簡(jiǎn)單的方式來(lái)執(zhí)行數(shù)據(jù)庫(kù)操作,包括插入、更新、刪除和查詢等操作。通過(guò)使用MyBatis的API,開(kāi)發(fā)人員可以
    的頭像 發(fā)表于 12-03 14:49 ?1816次閱讀

    mybatis和mybatisplus的區(qū)別

    MyBatisMyBatis Plus是兩個(gè)非常受歡迎的Java持久層框架。這兩個(gè)框架在設(shè)計(jì)和功能上有一些區(qū)別,下面我將詳細(xì)介紹它們之間的差異以及各自的特點(diǎn)。 設(shè)計(jì)理念與目標(biāo): MyBatis是一
    的頭像 發(fā)表于 12-03 11:53 ?2234次閱讀

    mybatis接口動(dòng)態(tài)代理原理

    MyBatis是一款輕量級(jí)的Java持久化框架,它通過(guò)XML或注解配置的方式,將數(shù)據(jù)庫(kù)操作與SQL語(yǔ)句解耦,提供了一種簡(jiǎn)單、靈活的數(shù)據(jù)訪問(wèn)方式。在MyBatis中,使用動(dòng)態(tài)代理技術(shù)來(lái)實(shí)現(xiàn)接口的代理
    的頭像 發(fā)表于 12-03 11:52 ?748次閱讀

    mybatis的dao能重載嗎

    MyBatis的DAO能否重載? 在MyBatis中,DAO是數(shù)據(jù)訪問(wèn)對(duì)象的縮寫(xiě),用于執(zhí)行與數(shù)據(jù)庫(kù)交互的操作。MyBatis的DAO可以重載,即可以定義多個(gè)具有不同參數(shù)的相同方法名的方法,以滿足
    的頭像 發(fā)表于 12-03 11:51 ?1087次閱讀

    Verilog設(shè)計(jì)快速入門(mén)秘籍

    Verilog設(shè)計(jì)快速入門(mén)秘籍,拿走不謝!
    發(fā)表于 11-03 12:00

    AT32 IDE快速入門(mén)指南

    AT32 IDE 快速入門(mén)指南幫助用戶快速熟悉Artery AT32 IDE的簡(jiǎn)明指南。
    發(fā)表于 10-26 06:13

    MPLAB ICD 4在線調(diào)試器快速入門(mén)指南

    電子發(fā)燒友網(wǎng)站提供《MPLAB ICD 4在線調(diào)試器快速入門(mén)指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-26 09:27 ?2次下載
    MPLAB ICD 4在線調(diào)試器<b class='flag-5'>快速</b><b class='flag-5'>入門(mén)</b>指南