1. 程式人生 > 實用技巧 >Mybatis簡單程式的的初步實現

Mybatis簡單程式的的初步實現

0. 思路

搭建環境--->匯入Mybatis--->編寫程式碼--->測試

1. 搭建環境

搭建資料庫:

1 CREATE DATABASE `mybatis`;
2 USE `mybatis`;
3 CREATE TABLE `user`(
4     `id` INT(20) NOT NULL,
5     `name` VARCHAR(30) DEFAULT NULL,
6     `pwd` VARCHAR(30) DEFAULT NULL,
7     PRIMARY KEY(`id`)
8 )ENGINE=INNODB DEFAULT charset=utf8;

新增資料

1 INSERT INTO `user` (`id`,`name`,`pwd`) VALUES (1,'張三','12345'),(2,'李四','123456');

2. 基於idea新建專案

2.1 建立專案File-->New Project-->maven

2.2 設定自己的maven

  Settings-->Build-->BuildTools-->Maven-->Maven home directory

  Maven主目錄和使用者設定檔案需要配置成自己的maven路徑

  maven下載地址:https://maven.apache.org/download.cgi

2.3 將建立號的Maven專案刪除src資料夾,這樣可以將剛建立的Maven專案變為父類,之後可在Maven專案中建立子模組

2.4 匯入依賴

 1  <!-- 匯入依賴-->
 2     <dependencies>
 3         <!-- mysql驅動-->
 4         <dependency>
 5             <groupId>mysql</groupId>
 6             <artifactId>mysql-connector-java</artifactId
> 7 <version>8.0.19</version> 8 </dependency> 9 <!-- mybatis--> 10 <dependency> 11 <groupId>org.mybatis</groupId> 12 <artifactId>mybatis</artifactId> 13 <version>3.5.5</version> 14 </dependency> 15 <!--junit--> 16 <dependency> 17 <groupId>junit</groupId> 18 <artifactId>junit</artifactId> 19 <version>3.8.1</version> 20 </dependency>

父類匯入依賴後建立的子模組也可以整合依賴

3. 建立模組(子模組)

3.1 編寫mybatis核心配置檔案

依據Mybatis的中文文件,進行mybatis的入門建立,網址為:https://mybatis.org/mybatis-3/zh/getting-started.html

XML 配置檔案中包含了對 MyBatis 系統的核心設定

包括獲取資料庫連線例項的資料來源(DataSource)以及決定事務作用域和控制方式的事務管理器(TransactionManager)。

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration
 3         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4         "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <configuration>
 6     <environments default="development">
 7         <environment id="development">
 8             <transactionManager type="JDBC"/>
 9             <dataSource type="POOLED">
10                 <property name="driver" value="com.mysql.jdbc.Driver"/>
11                 <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
12                 <property name="username" value="root"/>
13                 <property name="password" value="root"/>
14             </dataSource>
15         </environment>
16     </environments>
17     <mappers>
18         <mapper resource="org/mybatis/example/BlogMapper.xml"/>
19     </mappers>
20 </configuration>

進入idea中的資料庫連線,點選測試連線資料庫,測試資料庫是否連線成功

連線資料庫時需要更改時區,將時區改為shanghai時區

選擇架構中你需要連線的資料庫,點選確定即可

在URL中獲取對應的值

<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>

3.2 編寫Mybatis應用檔案

  1. 每一個Mybatis都以一個sqlSessionFactory例項為核心
  2. SqlSessionFactory可以獲取SqlSession例項
  3. SqlSession可以進行資料的操作
 1 //每個基於 MyBatis 的應用都是以一個 SqlSessionFactory 的例項為核心的
 2 //SqlSessionFactory-->SqlSession
 3 public class MybatisUtils {
 4     private static SqlSessionFactory sqlSessionFactory;
 5 
 6     static {
 7         try {
 8             //使用Mybatis獲取SqlSessionFactory物件
 9             String resource = "mybatis-config.xml";
10             InputStream inputStream = Resources.getResourceAsStream(resource);
11             SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
12         } catch (IOException e) {
13             e.printStackTrace();
14         }
15     }
16 
17 
18     //既然有了 SqlSessionFactory,顧名思義,我們可以從中獲得 SqlSession 的例項。
19 // SqlSession 提供了在資料庫執行 SQL 命令所需的所有方法。你可以通過 SqlSession 例項來直接執行已對映的 SQL 語句。
20     public static SqlSession getSqlSession() {
21         return sqlSessionFactory.openSession();
22     }
23 }

4. 程式碼編寫

4.1 實體類的編寫  pojo

 1 public class User {
 2     private Integer id;
 3     private String name;
 4     private String pwd;
 5 
 6     public User() {
 7     }
 8 
 9     public User(Integer id, String name, String pwd) {
10         this.id = id;
11         this.name = name;
12         this.pwd = pwd;
13     }
14 
15     public Integer getId() {
16         return id;
17     }
18 
19     public void setId(Integer id) {
20         this.id = id;
21     }
22 
23     public String getName() {
24         return name;
25     }
26 
27     public void setName(String name) {
28         this.name = name;
29     }
30 
31     public String getPwd() {
32         return pwd;
33     }
34 
35     public void setPwd(String pwd) {
36         this.pwd = pwd;
37     }
38 
39     @Override
40     public String toString() {
41         return "User{" +
42                 "id=" + id +
43                 ", name='" + name + '\'' +
44                 ", pwd='" + pwd + '\'' +
45                 '}';
46     }
47 }

4.2 Dao介面 UserDao.interface

1 public interface UserDao {
2     List<User> getUserList();
3 }

4.3 介面實現類 UserMapper.xml,由之前的UserDaoImpl轉變為一個Mapper的配置檔案

namespace繫結一個Dao或Mapper介面,用於連線介面和介面實現類

返回值型別需要些全限定類名

全限定類名:包名+類名

id值為Dao介面寫的方法名

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper
 3         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <!-- nameSpace繫結一個Dao或Mapper介面-->
 6 <mapper namespace="com.dz.dao.UserDao">
 7     <!-- 返回值型別為:全限定類名-->
 8     <select id="getUserList" resultType="com.dz.pojo.User">
 9     select * from mybatis.user
10   </select>
11 </mapper>

4.4 測試

4.5