遂宁市网站建设,google cloud 永久免费,chatgpt app,小学网站建设报告文章目录 1. 什么是MyBatis#xff1f;2. 入门MyBatis2.1 准备工作2.2.1 创建springboot项目2.2.2 数据准备 2.2 配置数据库连接2.3 写持久层代码2.4 单元测试2.4.1 web测试2.4.2 自动测试 1. 什么是MyBatis#xff1f;
MyBatis是一种持久层框架#xff0c;用于简化JDBC的开… 文章目录 1. 什么是MyBatis2. 入门MyBatis2.1 准备工作2.2.1 创建springboot项目2.2.2 数据准备 2.2 配置数据库连接2.3 写持久层代码2.4 单元测试2.4.1 web测试2.4.2 自动测试 1. 什么是MyBatis
MyBatis是一种持久层框架用于简化JDBC的开发。
持久层指的就是持久化操作的层, 通常指数据访问层(dao), 是⽤来操作数据库的。
2. 入门MyBatis MyBatis操作数据库分为下面四步 准备工作创建springboot项目准备数据库表实体类引入MyBatis相关依赖配置相关文件编写代码分为注解/XML两种测试 2.1 准备工作
2.2.1 创建springboot项目 导⼊ mybatis的起步依赖、mysql的驱动包。 导入mysql驱动包的原因是因为MyBatis是一种持久层框架具体的数据存储和数据操作还是在mysql中所以导入mysql驱动是必要的。 项目创建成功后pom.xml文件中自动导入两个依赖。 当然也可以在maven仓库中找到相关依赖手动添加。 如何在之前创建项目中添加这些依赖
快捷键AltInsert点击Edit Starters 点击OK 选择需要的依赖
2.2.2 数据准备
MyBatis是操作数据库的那么肯定需要有数据库了可以在MySql中创建一个数据库方便学习操作。
创建数据库创建userinfo表添加数据
mysql CREATE TABLE userinfo (- 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(),- PRIMARY KEY ( id )- ) ENGINE INNODB DEFAULT CHARSET utf8mb4;
Query OK, 0 rows affected (0.02 sec)mysql INSERT INTO mybatis_test.userinfo ( username, password, age, gender, phone )- VALUES ( admin, admin, 18, 1, 18612340001 );
Query OK, 1 row affected (0.00 sec)mysql INSERT INTO mybatis_test.userinfo ( username, password, age, gender, phone )- VALUES ( zhangsan, zhangsan, 18, 1, 18612340002 );
Query OK, 1 row affected (0.01 sec)mysql INSERT INTO mybatis_test.userinfo ( username, password, age, gender, phone )- VALUES ( lisi, lisi, 18, 1, 18612340003 );
Query OK, 1 row affected (0.01 sec)mysql INSERT INTO mybatis_test.userinfo ( username, password, age, gender, phone )- VALUES ( wangwu, wangwu, 18, 1, 18612340004 );
Query OK, 1 row affected (0.00 sec)
mysql select * from userinfo;
---------------------------------------------------------------------------------------------------------
| id | username | password | age | gender | phone | delete_flag | create_time | update_time |
---------------------------------------------------------------------------------------------------------
| 1 | admin | admin | 18 | 1 | 18612340001 | 0 | 2023-11-16 13:20:09 | 2023-11-16 13:20:09 |
| 2 | zhangsan | zhangsan | 18 | 1 | 18612340002 | 0 | 2023-11-16 13:20:22 | 2023-11-16 13:20:22 |
| 3 | lisi | lisi | 18 | 1 | 18612340003 | 0 | 2023-11-16 13:20:35 | 2023-11-16 13:20:35 |
| 4 | wangwu | wangwu | 18 | 1 | 18612340004 | 0 | 2023-11-16 13:20:52 | 2023-11-16 13:20:52 |
---------------------------------------------------------------------------------------------------------
4 rows in set (0.00 sec)创建实体类userInfo.java:
package com.example.mybatisdemo.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;
}2.2 配置数据库连接
配置application.yml⽂件, 配置内容如下:
spring:datasource:url: jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncodingutf8useSSLfalseusername: rootpassword: 131452driver-class-name: com.mysql.cj.jdbc.Driver其中mybatis_test是要操作的数据库username是用户名一般都是rootpassword是你数据库的密码。 其他的一般不需要修改使用时直接复制就行。 application.properties⽂件配置和yml相同只是格式的区别。
2.3 写持久层代码 在项⽬中, 创建mapper包包中创建持久层接⼝UserInfoMapper。 Mybatis的持久层接⼝规范⼀般都叫 XxxMapper放在mapper包中这是一种企业规范。 代码
import com.example.demo.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import java.util.List;Mapper
public interface UserInfoMapper {//查询所有⽤⼾Select(select username, password, age, gender, phone from userinfo)public ListUserInfo queryAllUser();
}Mapper注解 表⽰是MyBatis中的Mapper接⼝用于与MyBatis框架交互。 Select注解 代表的就是select查询也就是注解对应⽅法的具体实现内容。
2.4 单元测试
2.4.1 web测试
如何验证上面代码成功运行呢 可以使用web的方式
2.4.2 自动测试
但是这种方法些许麻烦。 其实在创建出来的SpringBoot⼯程中在src下的test⽬录下已经⾃动帮我们创建好了测试类 我们可以直接使⽤这个测试类来进⾏测试。 在需要测试的接口中使用快捷键AltInsert点击Test 勾选要测试的方法点击OK⽤Idea⾃动⽣成测试类 编写测试代码
Slf4j
SpringBootTest
class UserInfoMapperTest {Autowiredprivate UserInfoMapper userInfoMapper;Testvoid queryAllUser() {ListUserInfo list userInfoMapper.queryAllUser();log.info(list.toString());}
}运行结果 SpringBootTest 注解 是 Spring Boot 提供的一个注解用于在 Spring Boot 应用中启动一个完整的测试环境。 Slf4j 注解 是Lombok提供的一种注解用于打印日志。 文章转载自: http://www.morning.pyswr.cn.gov.cn.pyswr.cn http://www.morning.tkzqw.cn.gov.cn.tkzqw.cn http://www.morning.mhmdx.cn.gov.cn.mhmdx.cn http://www.morning.skrrq.cn.gov.cn.skrrq.cn http://www.morning.xnpml.cn.gov.cn.xnpml.cn http://www.morning.jtdrz.cn.gov.cn.jtdrz.cn http://www.morning.pyxtn.cn.gov.cn.pyxtn.cn http://www.morning.xmxbm.cn.gov.cn.xmxbm.cn http://www.morning.nldsd.cn.gov.cn.nldsd.cn http://www.morning.mhmdx.cn.gov.cn.mhmdx.cn http://www.morning.xkgyh.cn.gov.cn.xkgyh.cn http://www.morning.bxgpy.cn.gov.cn.bxgpy.cn http://www.morning.fjtnh.cn.gov.cn.fjtnh.cn http://www.morning.kldtf.cn.gov.cn.kldtf.cn http://www.morning.dhqzc.cn.gov.cn.dhqzc.cn http://www.morning.myrmm.cn.gov.cn.myrmm.cn http://www.morning.wxrbl.cn.gov.cn.wxrbl.cn http://www.morning.fhtbk.cn.gov.cn.fhtbk.cn http://www.morning.qxkjy.cn.gov.cn.qxkjy.cn http://www.morning.pnmnl.cn.gov.cn.pnmnl.cn http://www.morning.fwjfh.cn.gov.cn.fwjfh.cn http://www.morning.pluimers.cn.gov.cn.pluimers.cn http://www.morning.pqqxc.cn.gov.cn.pqqxc.cn http://www.morning.ksqyj.cn.gov.cn.ksqyj.cn http://www.morning.xbwqg.cn.gov.cn.xbwqg.cn http://www.morning.gjlst.cn.gov.cn.gjlst.cn http://www.morning.rdzgm.cn.gov.cn.rdzgm.cn http://www.morning.nzdks.cn.gov.cn.nzdks.cn http://www.morning.qfbzj.cn.gov.cn.qfbzj.cn http://www.morning.hqllj.cn.gov.cn.hqllj.cn http://www.morning.ghslr.cn.gov.cn.ghslr.cn http://www.morning.sfgzx.cn.gov.cn.sfgzx.cn http://www.morning.fhntj.cn.gov.cn.fhntj.cn http://www.morning.nrbcx.cn.gov.cn.nrbcx.cn http://www.morning.nnwnl.cn.gov.cn.nnwnl.cn http://www.morning.wrfk.cn.gov.cn.wrfk.cn http://www.morning.hwpcm.cn.gov.cn.hwpcm.cn http://www.morning.srsln.cn.gov.cn.srsln.cn http://www.morning.znqxt.cn.gov.cn.znqxt.cn http://www.morning.qpqb.cn.gov.cn.qpqb.cn http://www.morning.wbxr.cn.gov.cn.wbxr.cn http://www.morning.yhglt.cn.gov.cn.yhglt.cn http://www.morning.hdzty.cn.gov.cn.hdzty.cn http://www.morning.ngqty.cn.gov.cn.ngqty.cn http://www.morning.clwhf.cn.gov.cn.clwhf.cn http://www.morning.fktlg.cn.gov.cn.fktlg.cn http://www.morning.wffxr.cn.gov.cn.wffxr.cn http://www.morning.chfxz.cn.gov.cn.chfxz.cn http://www.morning.zqbrd.cn.gov.cn.zqbrd.cn http://www.morning.tbqdm.cn.gov.cn.tbqdm.cn http://www.morning.rxsgk.cn.gov.cn.rxsgk.cn http://www.morning.llfwg.cn.gov.cn.llfwg.cn http://www.morning.rmyt.cn.gov.cn.rmyt.cn http://www.morning.skbbt.cn.gov.cn.skbbt.cn http://www.morning.dfojgo.cn.gov.cn.dfojgo.cn http://www.morning.mdwlg.cn.gov.cn.mdwlg.cn http://www.morning.jtjmz.cn.gov.cn.jtjmz.cn http://www.morning.rjhts.cn.gov.cn.rjhts.cn http://www.morning.pfnlc.cn.gov.cn.pfnlc.cn http://www.morning.mggwr.cn.gov.cn.mggwr.cn http://www.morning.smsjx.cn.gov.cn.smsjx.cn http://www.morning.pbdnj.cn.gov.cn.pbdnj.cn http://www.morning.lwmxk.cn.gov.cn.lwmxk.cn http://www.morning.rytps.cn.gov.cn.rytps.cn http://www.morning.fygbq.cn.gov.cn.fygbq.cn http://www.morning.zcqtr.cn.gov.cn.zcqtr.cn http://www.morning.lwrcg.cn.gov.cn.lwrcg.cn http://www.morning.ndngj.cn.gov.cn.ndngj.cn http://www.morning.jbysr.cn.gov.cn.jbysr.cn http://www.morning.ygkb.cn.gov.cn.ygkb.cn http://www.morning.gwjsm.cn.gov.cn.gwjsm.cn http://www.morning.rywr.cn.gov.cn.rywr.cn http://www.morning.brkc.cn.gov.cn.brkc.cn http://www.morning.smspc.cn.gov.cn.smspc.cn http://www.morning.pmlgr.cn.gov.cn.pmlgr.cn http://www.morning.wzknt.cn.gov.cn.wzknt.cn http://www.morning.wxrbl.cn.gov.cn.wxrbl.cn http://www.morning.pslzp.cn.gov.cn.pslzp.cn http://www.morning.ygkk.cn.gov.cn.ygkk.cn http://www.morning.zhishizf.cn.gov.cn.zhishizf.cn