1. 程式人生 > >mybatis實現MySQL資料庫的增刪改查

mybatis實現MySQL資料庫的增刪改查

環境: - jdk1.8 - mysql5.7 - maven3.6.0 - IDEA ### 什麼是mybatis框架? - MyBatis 是一款優秀的持久層框架, - 它支援自定義 SQL、儲存過程以及高階對映。 - MyBatis免除了幾乎所有的 JDBC 程式碼以及設定引數和獲取結果集的工作。 - MyBatis可以通過簡單的 XML 或註解來配置和對映原始型別、介面和 Java POJO(Plain Old Java Objects,普通老式 Java 物件)為資料庫中的記錄。 - MyBatis 本是apache的一個[開源專案](https://baike.baidu.com/item/開源專案/3406069)iBatis, 2010年這個[專案](https://baike.baidu.com/item/專案/477803)由apache software foundation 遷移到了[google code](https://baike.baidu.com/item/google code/2346604),並且改名為MyBatis 。2013年11月遷移到[Github](https://baike.baidu.com/item/Github/10145341)。 ### 下面開始搭建 1. sql檔案如下: ``` /* SQLyog Ultimate v13.1.1 (64 bit) MySQL - 5.7.31-log : Database - mybatis ********************************************************************* */ CREATE DATABASE /*!32312 IF NOT EXISTS*/`mybatis` /*!40100 DEFAULT CHARACTER SET latin1 */; USE `mybatis`; /*Table structure for table `user` */ DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(20) NOT NULL, `name` varchar(30) DEFAULT NULL, `pwd` varchar(30) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*Data for the table `user` */ insert into `user`(`id`,`name`,`pwd`) values (1,'qijian','123'), (2,'Tom','123'), (3,'qijian','111'); ``` 2. 使用 Maven 來構建專案。pom.xml檔案程式碼如下。注意我搭建該專案是mybatis-study的子專案。 ```xml ``` 3. XML 配置檔案中包含了對 MyBatis 系統的核心設定,包括獲取資料庫連線例項的資料來源(DataSource)以及決定事務作用域和控制方式的事務管理器(TransactionManager)。 ```xml ``` 注意: XML 頭部的宣告,它用來驗證 XML 文件的正確性。environment 元素體中包含了事務管理和連線池的配置。mappers 元素則包含了一組對映器(mapper),這些對映器的 XML 對映檔案包含了 SQL 程式碼和對映定義資訊。 4. 每個基於 MyBatis 的應用都是以一個 SqlSessionFactory 的例項為核心的。SqlSessionFactory 的例項可以通過 SqlSessionFactoryBuilder 獲得。而 SqlSessionFactoryBuilder 則可以從 XML 配置檔案或一個預先配置的 Configuration 例項來構建出 SqlSessionFactory 例項。這裡使用的是XML 配置檔案。 MybatisUtils工具類. ```java package com.qijian.utils; 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 java.io.IOException; import java.io.InputStream; public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; private static String resource = "mybatis-Config.xml"; private static InputStream inputStream; static { //使用mybatis的第一步:獲取 SqlSessionFactory物件 try { inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } //既然有了 SqlSessionFactory,顧名思義,我們可以從中獲得 SqlSession 的例項。 // SqlSession 提供了在資料庫執行 SQL 命令所需的所有方法。 public static SqlSession getSqlSession() throws IOException { return sqlSessionFactory.openSession(); } } ``` 5. 實體類user如下 ```java package com.qijian.pojo; public class User { private int id; private String name; private String pwd; @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", pwd='" + pwd + '\'' + '}'; } public User(int id, String name, String pwd) { this.id = id; this.name = name; this.pwd = pwd; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } } ``` 6. UserMapper類 ```java package com.qijian.dao; import com.qijian.pojo.User; import java.util.List; import java.util.Map; public interface UserMapper { //查詢所有的使用者 //@Select("SELECT * FROM mybatis.user WHERE id = #{id}")