合同网站开发 设计 后期维护,诸城建设局网站,如何创办一家自己的公司,代理做网站怎么样文章目录 #x1f332;什么是MyBatis?#x1f333;准备⼯作#x1f6a9;创建⼯程#x1f6a9;数据准备#x1f6a9;配置数据库连接字符串#x1f6a9; 在项⽬中,创建持久层接⼝UserInfoMapper #x1f343;单元测试#x1f6a9;使⽤Idea⾃动⽣成测试类 #x1f340;打… 文章目录 什么是MyBatis?准备⼯作创建⼯程数据准备配置数据库连接字符串 在项⽬中,创建持久层接⼝UserInfoMapper 单元测试使⽤Idea⾃动⽣成测试类 打印⽇志⭕总结 什么是MyBatis?
MyBatis是⼀款优秀的持久层框架⽤于简化JDBC的开发。
MyBatis本是Apache的⼀个开源项⽬iBatis2010年这个项⽬由apache迁移到了google code并且改名为MyBatis。2013年11⽉迁移到Github。详细信息点我了解
在上⾯我提到⼀个词持久层
持久层指的就是持久化操作的层,通常指数据访问层(dao),是⽤来操作数据库的. 简单来说MyBatis是更简单完成程序和数据库交互的框架也就是更简单的操作和读取数据库⼯具
接下来博主将通过⼀个⼊⻔程序让⼤家感受⼀下通过Mybatis如何来操作数据库
准备⼯作
创建⼯程
创建springboot⼯程并导⼊mybatis的起步依赖、mysql的驱动包
这里只演示导入mybatis的起步依赖、mysql的驱动包。不会创建springboot的小伙伴参考博主写的 【JavaEE进阶】SpringBoot的创建与简单使用 项⽬⼯程创建完成后⾃动在pom.xml⽂件中导⼊Mybatis依赖和MySQL驱动依赖 数据准备
创建⽤⼾表,并创建对应的实体类User
DROP DATABASE IF EXISTS mybatis_test;
CREATE DATABASE mybatis_test DEFAULT CHARACTER SET utf8mb4;
-- 使⽤数据数据
USE mybatis_test;-- 创建表[⽤⼾表]
DROP TABLE IF EXISTS userinfo;
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;-- 添加⽤⼾信息
INSERT INTO mybatis_test.userinfo ( username, password, age, gender, phone )
VALUES ( admin, admin, 18, 1, 18612340001 );
INSERT INTO mybatis_test.userinfo ( username, password, age, gender, phone )
VALUES ( zhangsan, zhangsan, 18, 1, 18612340002 );
INSERT INTO mybatis_test.userinfo ( username, password, age, gender, phone )
VALUES ( lisi, lisi, 18, 1, 18612340003 );
INSERT INTO mybatis_test.userinfo ( username, password, age, gender, phone )
VALUES ( wangwu, wangwu, 18, 1, 18612340004 );创建userinof表如下 创建对应的实体类UserInfo 由于数据库单词之间采用蛇形而java单词之间喜欢采用驼峰所以这里我们进行一个简单的转换。其他实体类的属性名与表中的字段名⼀⼀对应 配置数据库连接字符串
Mybatis中要连接数据库需要数据库相关参数配置 MySQL驱动类 登录名 密码 数据库连接字符串
application.yml配置文件如下
spring:datasource:url: jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncodingutf8useSSLfalseusername: rootpassword: 666666driver-class-name: com.mysql.cj.jdbc.Driver注意事项
如果使⽤MySQL是5.x之前的使⽤的是com.mysql.jdbc.Driver如果是⼤于5.x使⽤的是“com.mysql.cj.jdbc.Driver”. 在项⽬中,创建持久层接⼝UserInfoMapper 查询所有用户代码如下
Mapper
public interface UserInfoMapper {Select(select * from userinfo)public ListUserInfo selectAll();
}Mybatis的持久层接⼝规范⼀般都叫XxxMapper Mapper注解表⽰是MyBatis中的Mapper接⼝
程序运⾏时,框架会⾃动⽣成接⼝的实现类对象(代理对象)并给交Spring的IOC容器管理Select注解代表的就是select查询也就是注解对应⽅法的具体实现内容
单元测试
在创建出来的SpringBoot⼯程中在src下的test⽬录下已经⾃动帮我们创建好了测试类我们可以直接使⽤这个测试类来进⾏测试. 实现代码如下
SpringBootTest
class MybatisApplicationTests {Autowiredprivate UserInfoMapper userInfoMapper;Testvoid contextLoads() {ListUserInfo list userInfoMapper.selectAll();System.out.println(list);}
}测试类上添加了注解SpringBootTest该测试类在运⾏时就会⾃动加载Spring的运⾏环境.我们通过Autowired这个注解,注⼊我们要测试的类,就可以开始进⾏测试了 直接点该测试方法测试就好 我们运行看一下结果如下 但是我们发现返回结果中,可以看到,只有SQL语句中查询的列对应的属性才有赋值。 这是当前代码正常得情况具体解决方法关注博主后续博文得发布 使⽤Idea⾃动⽣成测试类
我们也可以使⽤Idea⾃动⽣成测试类 在需要测试的Mapper接⼝中,右键-Generate-Test 选择要测试的⽅法,点击OK 我们就可以在目录下找到我们创建得测试类了 书写测试代码
SpringBootTest
class UserInfoMapperTest {Autowiredprivate UserInfoMapper userInfoMapper;Testvoid selectAll(){ListUserInfo list userInfoMapper.selectAll();System.out.println(list);}
}打印⽇志
在Mybatis当中我们可以借助⽇志,查看到sql语句的执⾏、执⾏传递的参数以及执⾏结果在配置⽂件中进⾏配置即可
application.yml配置文件如下
mybatis:configuration: # 配置打印 MyBatis⽇志log-impl: org.apache.ibatis.logging.stdout.StdOutImpl我们再重新运行程序就可以看到SQL执⾏内容,以及传递参数和执⾏结果 ①:查询语句 ②:传递参数及类型 ③:SQL执⾏结果 ⭕总结
关于《【JavaEE进阶】MyBatis⼊⻔》就讲解到这儿感谢大家的支持欢迎各位留言交流以及批评指正如果文章对您有帮助或者觉得作者写的还不错可以点一下关注点赞收藏支持一下