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

如何基于mybatis框架查詢數(shù)據(jù)庫表數(shù)據(jù)并打印

 更新時間:2020年11月02日 10:03:22   作者:愛寫代碼的基  
這篇文章主要介紹了如何基于mybatis框架查詢數(shù)據(jù)庫表數(shù)據(jù)并打印,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

一、需求說明

使用mybatis框架查詢數(shù)據(jù)庫user表數(shù)據(jù)并打印到控制臺上

二、數(shù)據(jù)庫數(shù)據(jù)準備

-- 創(chuàng)建用戶表
create table user (
 id int primary key auto_increment,
 username varchar(20) not null,
 birthday date,
 sex char(1) default '男',
 address varchar(50)
);

-- 添加用戶數(shù)據(jù)
insert into user values (null, '孫悟空','1980-10-24','男','花果山水簾洞');
insert into user values (null, '白骨精','1992-11-12','女','白虎嶺白骨洞');
insert into user values (null, '豬八戒','1983-05-20','男','福臨山云棧洞');
insert into user values (null, '蜘蛛精','1995-03-22','女','盤絲洞');

-- 查詢用戶數(shù)據(jù)
select * from user;

三、實現(xiàn)步驟

3.1 創(chuàng)建模塊3

.2 導入Mybatis框架jar包

3.3 編寫用戶實體類:User

package com.vg.entity;

import java.util.Date;

public class User {
  private int id;
  private String username;
  private Date birthday;
  private String sex;
  private String address;

  //alt+insert快速生成getter/setter方法
  public int getId() {
    return id;
  }

  public void setId(int 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) {
    this.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 + '\'' +
        '}';
  }
}

3.4 編寫dao接口:UserMapper

package com.vg.dao;
import com.vg.entity.User;
import java.util.List;
/**
 * 數(shù)據(jù)訪問層接口:對用戶進行增刪改查操作
 * */
public interface UserMapper {
  /**
   * 查詢所有用戶
   * */
  List<User> findAllUsers();
}

3.5 編寫dao接口映射文件: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>
  
</mapper>

3.6 編寫Mybatis主配置文件:sqlMapConfig.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>
  
</configuration>

3.7 編寫測試類

package com.vg.test;
import org.junit.Test;
/**
 * 測試類
 */
public class TestUserMapper {

  /**
   * 測試方法:查詢所有學生
   */
  @Test
  public void testFindAllUsers(){
    
  }
}

四、完善sqlMapConfig.xml

4.1 目標

完成mybatis主配置文件相關(guān)信息的配置:數(shù)據(jù)庫環(huán)境信息配置,包括如下:

  • 導入mybatis約束(復制約束信息)
  • 數(shù)據(jù)庫事務(wù)配置
  • 數(shù)據(jù)庫連接信息配置
  • 連接池信息配置

4.2 sqlMapConfig.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標簽作用:配置數(shù)據(jù)庫環(huán)境
    default:設(shè)置默認的數(shù)據(jù)庫環(huán)境
    environment:用來配置一個數(shù)據(jù)庫的環(huán)境信息
  -->
  <environments default="develop">
    <!--用來配置一個數(shù)據(jù)庫的環(huán)境信息
      id:配置環(huán)境信息的唯一標識
    -->
    <environment id="develop">
      <!--
        transactionManager:配置事務(wù)管理器
          type:設(shè)置事務(wù)管理器的類型,取值有type=“[JDBC|MANAGED]”
            JDBC:事務(wù)管理使用JDBC的管理方式
            MANAGED:事務(wù)交給容器管理(mybatis不管理),后續(xù)交給spring容器管理。

      -->
      <transactionManager type="JDBC"></transactionManager>
      <!--
        dataSource:配置數(shù)據(jù)源(連接池)信息
          type:設(shè)置數(shù)據(jù)源類型,常用的值有:unpooled 和 pooled
            unpooled:不使用連接池,每次都重新獲取連接操作數(shù)據(jù)
            pooled:使用mybatis內(nèi)置的連接池
      -->
      <dataSource type="POOLED">
        <!--數(shù)據(jù)庫驅(qū)動字符串-->
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <!--數(shù)據(jù)庫驅(qū)動字符串-->
        <property name="url" value="jdbc:mysql://localhost:3306/test"/>
        <!--用戶名-->
        <property name="username" value="root"/>
        <!--密碼-->
        <property name="password" value="root"/>
      </dataSource>
    </environment>
  </environments>
</configuration>

五、完善UserMapper.xml文件

5.1 目標

完成接口映射配置文件UserMapper.xml的編寫:這個映射文件就相當于UserMapper接口實現(xiàn)類配置

5.2 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">
<!--
  映射的作用:一個映射文件就對應(yīng)一個接口,一個接口可以有多個映射文件,一般是一對一關(guān)系。
  mapper標簽的namespace屬性的作用:關(guān)聯(lián)接口,需要配置對應(yīng)接口的類全名字符串
-->
<mapper namespace="com.vg.dao.UserMapper">
  <!-- 完成接口映射配置文件UserMapper.xml的編寫:這個映射文件就相當于UserMapper接口實現(xiàn)類配置 -->

  <!--select標簽的作用:用來配置查詢要執(zhí)行的SQL語句
    id屬性:關(guān)聯(lián)接口中的方法名
    resultType屬性:設(shè)置方法返回的數(shù)據(jù)類型,如果是集合則配置集合元素的類型
  -->
  <select id="findAllUsers" resultType="com.vg.entity.User">
    select * from user
  </select>
</mapper>

5.3 在sqlMapConfig.xml中加載接口映射配置文件

 <!--mappers標簽的作用:用來配置接口映射文件-->
  <mappers>
    <!--mapper標簽:一個該標簽就配置一個接口映射文件
      resource屬性:配置映射文件的路徑,路徑分隔符使用 / : com/vg/dao/UserMapper.xml
      url:用于配置互聯(lián)網(wǎng)上的映射文件的路徑,比如:http://www.baidu.com/xxx.xml
    -->
    <mapper resource="com/vg/dao/UserMapper.xml"></mapper>
  </mappers>

六、編寫測試類運行

6.1 運行效果

6.2 實現(xiàn)步驟

  • 1. 通過Resources類,加載sqlMapConfig.xml,得到文件輸入流對象
  • 2. 實例化會話工廠創(chuàng)建類SqlSessionFactoryBuilder
  • 3. 通過會話工廠創(chuàng)建類,讀取上面的輸入流,得到會話工廠SqlSessionFactory類
  • 4. 使用SqlSessionFactory對象,創(chuàng)建SqlSession對象
  • a) 它相當于JDBC中的Connection對象,提供了操作數(shù)據(jù)庫的CRUD方法
  • b) 它提供了一個getMapper()方法,獲取接口的實現(xiàn)對象。
  • 5. 獲取接口 UserMapper 實現(xiàn)類對象
  • 6. 執(zhí)行數(shù)據(jù)庫的查詢操作,輸出用戶信息
  • 7. 關(guān)閉會話,釋放資源。

6.3 測試類代碼

package com.vg.test;

import com.vg.dao.UserMapper;
import com.vg.entity.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;
import org.junit.Test;

import java.io.InputStream;
import java.util.List;

/**
 * 測試類
 */
public class TestUserMapper {
  /**
   * 測試方法:查詢所有學生
   * SqlSessionFactoryBuilder=>SqlSessionFactory=>Sqlsession:相當于JDBC中的Connection對象
   */
  @Test
  public void testFindAllUsers() throws Exception{
    //1. 通過Resources類,加載sqlMapConfig.xml,得到文件輸入流對象
    // Resources類作用:專門讀取src目錄下的資源文件
    InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
    //2. 實例化會話工廠創(chuàng)建類SqlSessionFactoryBuilder
    SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
    //3. 通過會話工廠創(chuàng)建類,讀取上面的輸入流,得到會話工廠SqlSessionFactory類
    SqlSessionFactory sqlSessionFactory = builder.build(in);
    //4. 使用SqlSessionFactory對象,創(chuàng)建SqlSession對象
    //a) 它相當于JDBC中的Connection對象,提供了操作數(shù)據(jù)庫的CRUD方法
    //b) 它提供了一個getMapper()方法,獲取接口的實現(xiàn)對象。
    SqlSession sqlSession = sqlSessionFactory.openSession();
    //5. 獲取接口 UserMapper 實現(xiàn)類對象
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    System.out.println("userMapper = " +userMapper);
    //6. 執(zhí)行數(shù)據(jù)庫的查詢操作,輸出用戶信息
    List<User> userList = userMapper.findAllUsers();
    for (User user : userList) {
      System.out.println(user);
    }
    //7. 關(guān)閉會話,釋放資源。
    sqlSession.close();
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java并發(fā)編程之CountDownLatch解析

    Java并發(fā)編程之CountDownLatch解析

    這篇文章主要介紹了Java并發(fā)編程之CountDownLatch解析,Sync為一個實現(xiàn)了AQS的內(nèi)部類,代理CountDownLatch的獲取和釋放操作,需要所有線程等待某個條件完成后,才執(zhí)行某個動作時,可以使用CountDownLatch,需要的朋友可以參考下
    2023-12-12
  • java 多線程交通信號燈模擬過程詳解

    java 多線程交通信號燈模擬過程詳解

    這篇文章主要介紹了java 多線程交通信號燈模擬過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • 微服務(wù)SpringBoot整合Jasypt加密工具的場景分析

    微服務(wù)SpringBoot整合Jasypt加密工具的場景分析

    Jasypt是Java加密工具包,能支持對密碼的哈希加密,對文本和二進制數(shù)據(jù)的對稱加解密,還能集成SpringBoot項目對配置文件中的密鑰進行加密存儲,這篇文章主要介紹了微服務(wù)SpringBoot整合Jasypt加密工具,需要的朋友可以參考下
    2022-10-10
  • Spring如何更簡單的讀取和存儲對象

    Spring如何更簡單的讀取和存儲對象

    這篇文章主要給大家介紹了關(guān)于Spring如何更簡單的讀取和存儲對象的相關(guān)資料,在Spring 中想要更簡單的存儲和讀取對象的核?是使?注解,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • 如何用java給一個文件夾打成壓縮包(附代碼)

    如何用java給一個文件夾打成壓縮包(附代碼)

    項目中需要將文件夾打包成壓縮包下載,所以下面這篇文章主要給大家介紹了關(guān)于如何用java給一個文件夾打成壓縮包的相關(guān)資料,文中給出了詳細的代碼示例,需要的朋友可以參考下
    2023-10-10
  • 學習C語言對后期java有幫助嗎

    學習C語言對后期java有幫助嗎

    在本篇文章里小編給大家整理的是一篇關(guān)于學習C語言對后期java有幫助嗎的基礎(chǔ)文章,有興趣的朋友們可以參考下。
    2020-11-11
  • WIN10系統(tǒng)中添加bat腳本重啟jar服務(wù)

    WIN10系統(tǒng)中添加bat腳本重啟jar服務(wù)

    在bat腳本中執(zhí)行java服務(wù),命令與cmd中類似,下面這篇文章主要給大家介紹了關(guān)于WIN10系統(tǒng)中添加bat腳本重啟jar服務(wù)的相關(guān)資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • Java啟用Azure Linux虛擬機診斷設(shè)置

    Java啟用Azure Linux虛擬機診斷設(shè)置

    這篇文章主要介紹了Java啟用Azure Linux虛擬機診斷設(shè)置,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • Java多線程和并發(fā)基礎(chǔ)面試題(問答形式)

    Java多線程和并發(fā)基礎(chǔ)面試題(問答形式)

    多線程和并發(fā)問題是Java技術(shù)面試中面試官比較喜歡問的問題之一。在這里,從面試的角度列出了大部分重要的問題,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Java中的StringTokenizer實現(xiàn)字符串切割詳解

    Java中的StringTokenizer實現(xiàn)字符串切割詳解

    這篇文章主要介紹了Java中的StringTokenizer實現(xiàn)字符串切割詳解,java.util工具包提供了字符串切割的工具類StringTokenizer,Spring等常見框架的字符串工具類(如Spring的StringUtils),需要的朋友可以參考下
    2024-01-01

最新評論

福贡县| 通城县| 栖霞市| 德州市| 长宁县| 兴文县| 田东县| 大新县| 富顺县| 文昌市| 原阳县| 卢湾区| 溧阳市| 内丘县| 广平县| 谢通门县| 浪卡子县| 津市市| 宁阳县| 穆棱市| 鸡西市| 铁岭市| 裕民县| 吐鲁番市| 同仁县| 中牟县| 清原| 蒲城县| 西宁市| 苍南县| 东兰县| 新源县| 兰西县| 威远县| 精河县| 稷山县| 高淳县| 茌平县| 利川市| 文山县| 尤溪县|