Mybatis 簡單啟動過程入門詳解
一、Mybatis簡介
Mybatis是一個操作數(shù)據(jù)庫驅(qū)動的持久層框架,用來簡化JDBC操作的,SpringBoot集成了這個框架。
MyBatis本是 Apache的?個開源項?iBatis,2010年這個項?由apache遷移到了google code,并且改名為MyBatis。2013年11?遷移到Github.
二、MyBatis??
2.1 創(chuàng)建項目
在前面跟我們前面創(chuàng)建的SpringBoot項目一樣,只有在選擇依賴的時候要多選擇SQL下的Mybatis Framework和MySQL Driver
2.2 準備數(shù)據(jù)
直接使用下面準備的數(shù)據(jù)庫數(shù)據(jù)即可:
- 創(chuàng)建一個mybatis_test的數(shù)據(jù)庫
- 該庫中含有user_info和article_info兩張表
- user_info表中有主鍵id,username等等信息
- article_info表中有主鍵id,title等等信息
-- 創(chuàng)建數(shù)據(jù)庫 DROP DATABASE IF EXISTS mybatis_test; CREATE DATABASE mybatis_test DEFAULT CHARACTER SET utf8mb4; -- 使用數(shù)據(jù)數(shù)據(jù) USE mybatis_test; -- 創(chuàng)建表[用戶表] DROP TABLE IF EXISTS user_info; CREATE TABLE `user_info` ( `id` INT ( 11 ) NOT NULL AUTO_INCREMENT, `username` VARCHAR ( 127 ) NOT NULL, `password` VARCHAR ( 127 ) NOT NULL, `age` TINYINT ( 4 ) NOT NULL, `gender` TINYINT ( 4 ) DEFAULT '0' COMMENT '1-男 2-女 0-默認', `phone` VARCHAR ( 15 ) DEFAULT NULL, `delete_flag` TINYINT ( 4 ) DEFAULT 0 COMMENT '0-正常, 1-刪除', `create_time` DATETIME DEFAULT now(), `update_time` DATETIME DEFAULT now() ON UPDATE now(), PRIMARY KEY ( `id` ) ) ENGINE = INNODB DEFAULT CHARSET = utf8mb4; -- 添加用戶信息 INSERT INTO mybatis_test.user_info( username, `password`, age, gender, phone ) VALUES ( 'admin', 'admin', 18, 1, '18612340001' ); INSERT INTO mybatis_test.user_info( username, `password`, age, gender, phone ) VALUES ( 'zhangsan', 'zhangsan', 18, 1, '18612340002' ); INSERT INTO mybatis_test.user_info( username, `password`, age, gender, phone ) VALUES ( 'lisi', 'lisi', 18, 1, '18612340003' ); INSERT INTO mybatis_test.user_info( username, `password`, age, gender, phone ) VALUES ( 'wangwu', 'wangwu', 18, 1, '18612340004' ); -- 創(chuàng)建文章表 DROP TABLE IF EXISTS article_info; CREATE TABLE article_info ( id INT PRIMARY KEY auto_increment, title VARCHAR ( 100 ) NOT NULL, content TEXT NOT NULL, uid INT NOT NULL, delete_flag TINYINT ( 4 ) DEFAULT 0 COMMENT '0-正常, 1-刪除', create_time DATETIME DEFAULT now(), update_time DATETIME DEFAULT now() ) DEFAULT charset 'utf8mb4'; -- 插入測試數(shù)據(jù) INSERT INTO article_info ( title, content, uid ) VALUES ( 'Java', 'Java正文', 1 );
2.3 配置文件
直接復制下面的代碼即可,注意要將password改寫成你電腦上的MySQL數(shù)據(jù)庫登錄密碼。
spring: datasource: url: jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncoding=utf8&useSSL=false username: root password: 1234 driver-class-name: com.mysql.cj.jdbc.Driver
2.4 實體類
在idea中創(chuàng)建一個類來接收數(shù)據(jù)庫中user-info表的數(shù)據(jù),類中的成員與user-info表中的字段一一對應:
package com.example.springmybatisdemo.model; import lombok.Data; import java.util.Date; @Data public class UserInfo { private Integer id; private String username; private String password; private Integer age; private Integer gender; private String phone; private Integer deleteFlag; private Date createTime; private Date updateTime; }
創(chuàng)建接口來操作數(shù)據(jù)庫,使用@Mapper注解來將該接口交給Spring管理,@Select(" ")來實現(xiàn)查詢語句,括號中的參數(shù)寫SQL的查詢語句。
- @Mapper注解是Mybatis提供的控制反轉(zhuǎn)注解。
- @Select注解直接將這個接口的方法給實現(xiàn)了。所以我們在后面可以直接注入這個接口。我們前面學習的SpringBoot的IoC注解是沒有這個功能的,如果是接口需要自己實現(xiàn)。
- 當我們的接口是使用@Mapper注解管理,其中有些方法有沒有使用Mybatis可以實現(xiàn)的注解,那么就會在使用時拋出異常。
package com.example.springmybatisdemo.mapper; import com.example.springmybatisdemo.model.UserInfo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import java.util.List; @Mapper public interface UserMapper { @Select("select * from user_info") List<UserInfo> selectAll() ; }
測試類,使用@SpringBootTest注解來啟動測試類,@Test啟動測試方法。
- @SpringBootTest這個注解就是在運行這個測試類的時候加載Spring環(huán)境
- @Test注解可以讓被修飾的方法啟動起來,就不需要使用main方法。
package com.example.springmybatisdemo; import com.example.springmybatisdemo.mapper.UserMapper; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest public class UserInfoMapperTest { @Autowired private UserMapper userMapper; @Test void selectAll() { System.out.println(userMapper.selectAll()); } }
2.5 執(zhí)行結果
執(zhí)行結果如下圖,確實將我們插入到user-info表中的數(shù)據(jù)拿到了:
到此這篇關于Mybatis 簡單啟動的文章就介紹到這了,更多相關Mybatis 啟動內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java中的ReentrantLock、ReentrantReadWriteLock、StampedLock詳解
這篇文章主要介紹了Java中的ReentrantLock、ReentrantReadWriteLock、StampedLock詳解,讀寫鎖:一個資源能夠被多個讀線程訪問,或者被一個寫線程訪問但是不能同時存在讀寫線程,需要的朋友可以參考下2024-01-01微服務Redis-Session共享登錄狀態(tài)的過程詳解
這篇文章主要介紹了微服務Redis-Session共享登錄狀態(tài),本文采取Spring security做登錄校驗,用redis做session共享,實現(xiàn)單服務登錄可靠性,微服務之間調(diào)用的可靠性與通用性,需要的朋友可以參考下2023-12-12如何在IDE部署springboot項目(有swagger和無swagger都是一樣的)到服務器或者虛擬機上的docke
這篇文章主要介紹了如何在IDE部署springboot項目(有swagger和無swagger都是一樣的)到服務器或者虛擬機上的docker,本文給大家分享我的安裝歷程,需要的朋友可以參考下2023-01-01SpringBoot創(chuàng)建RSocket服務器的全過程記錄
RSocket應用層協(xié)議支持 Reactive Streams語義, 例如:用RSocket作為HTTP的一種替代方案。這篇文章主要給大家介紹了關于SpringBoot創(chuàng)建RSocket服務器的相關資料,需要的朋友可以參考下2021-05-05java使用Nagao算法實現(xiàn)新詞發(fā)現(xiàn)、熱門詞的挖掘
這篇文章主要介紹了java使用Nagao算法實現(xiàn)新詞發(fā)現(xiàn)、熱門詞的挖掘的思路和詳細代碼,需要的朋友可以參考下2015-07-07