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&useUnicode=true&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&useUnicode=true&characterEncoding=UTF-8"/>
3.2 編寫Mybatis應用檔案
- 每一個Mybatis都以一個sqlSessionFactory例項為核心
- SqlSessionFactory可以獲取SqlSession例項
- 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