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

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

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

mybatis快速入門

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

mybatis快速入門

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

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

mybatis快速入門

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

【mybatis】

mybatis-3.1.1.jar

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

mysql-connector-java-5.1.7-bin.jar

mybatis快速入門

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

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ù)庫中執(zhí)行,完成創(chuàng)建數(shù)據(jù)庫和表的操作,如下:

mybatis快速入門

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

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

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

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

mybatis快速入門

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ù)庫連接信息 -->

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快速入門

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包,專門用于存放sql映射文件,在包中創(chuàng)建一個(gè)userMapper.xml文件,如下圖所示:

mybatis快速入門

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)簽中編寫查詢的SQL語句, 設(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ù)庫連接信息 -->

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寫成me/gacl/mapping/userMapper.xml-->

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

21 《/mappers>

22

23 《/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 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屬性值,通過select標(biāo)簽的id屬性值就可以找到要執(zhí)行的SQL

*/

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

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

//格式:命名空間名(namespace)+映射語句名(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快速入門

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

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

    關(guān)注

    0

    文章

    60

    瀏覽量

    6714
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ADS62PxxEVM快速入門指南

    電子發(fā)燒友網(wǎng)站提供《ADS62PxxEVM快速入門指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-19 14:29 ?0次下載
    ADS62PxxEVM<b class='flag-5'>快速</b><b class='flag-5'>入門</b>指南

    TVP5154EVM快速入門指南

    電子發(fā)燒友網(wǎng)站提供《TVP5154EVM快速入門指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-07 14:38 ?0次下載
    TVP5154EVM<b class='flag-5'>快速</b><b class='flag-5'>入門</b>指南

    TVP5146:VBI快速入門

    電子發(fā)燒友網(wǎng)站提供《TVP5146:VBI快速入門.pdf》資料免費(fèi)下載
    發(fā)表于 12-06 15:24 ?0次下載
    TVP5146:VBI<b class='flag-5'>快速</b><b class='flag-5'>入門</b>

    TVP5150A:快速入門指南

    電子發(fā)燒友網(wǎng)站提供《TVP5150A:快速入門指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-06 14:10 ?0次下載
    TVP5150A:<b class='flag-5'>快速</b><b class='flag-5'>入門</b>指南

    TVP5160 EVM快速入門指南

    電子發(fā)燒友網(wǎng)站提供《TVP5160 EVM快速入門指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-06 14:03 ?0次下載
    TVP5160 EVM<b class='flag-5'>快速</b><b class='flag-5'>入門</b>指南

    TVP51471M1 VBI快速入門

    電子發(fā)燒友網(wǎng)站提供《TVP51471M1 VBI快速入門.pdf》資料免費(fèi)下載
    發(fā)表于 09-30 11:52 ?0次下載
    TVP51471M1 VBI<b class='flag-5'>快速</b><b class='flag-5'>入門</b>

    TVP5160 VBI快速入門

    電子發(fā)燒友網(wǎng)站提供《TVP5160 VBI快速入門.pdf》資料免費(fèi)下載
    發(fā)表于 09-30 11:17 ?0次下載
    TVP5160 VBI<b class='flag-5'>快速</b><b class='flag-5'>入門</b>

    TVP5150AM1 VBI快速入門

    電子發(fā)燒友網(wǎng)站提供《TVP5150AM1 VBI快速入門.pdf》資料免費(fèi)下載
    發(fā)表于 09-30 11:06 ?0次下載
    TVP5150AM1 VBI<b class='flag-5'>快速</b><b class='flag-5'>入門</b>

    TVP5150A VBI快速入門

    電子發(fā)燒友網(wǎng)站提供《TVP5150A VBI快速入門.pdf》資料免費(fèi)下載
    發(fā)表于 09-30 09:40 ?0次下載
    TVP5150A VBI<b class='flag-5'>快速</b><b class='flag-5'>入門</b>

    TVP5154A VBI快速入門

    電子發(fā)燒友網(wǎng)站提供《TVP5154A VBI快速入門.pdf》資料免費(fèi)下載
    發(fā)表于 09-29 09:47 ?0次下載
    TVP5154A VBI<b class='flag-5'>快速</b><b class='flag-5'>入門</b>

    PGA460-Q1 EVM快速入門指南

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

    AM263Px控制卡快速入門指南

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

    如何快速入門FPGA?

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

    CW32快速開發(fā)入門

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

    allegro快速入門教程

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