一、熟悉MyBatis
是一个优秀的持久层框架,它消除了几乎所有的JDBC代码,使得我们在项目开发过程中只要添加SQL语句就可以完成大多数数据库操作。
源码在github上
1.1特点
Mybatis因为提价小,轻便等缘故,在开发使用越来越频繁。
1. mybatis内容并不是很多,所以学习起来比较容易,mybatis不需要我们添加其他依赖就可以运行
2.mybatis消除了激活所有JDBC代码,所有数据库的操作都可以通过填写SQL语句完成。而这些语句统一保存在XML文件中,方便管理,但同时,这也说明要使用它进行开发,我们必须十分熟悉SQL语句的规范,这对开发人员来说是硬性要求
3.XML中提供了很多标签可以用来配置动态SQL,所以对于一些复杂的查询操作,我们也不用担心
4.Mybatis中不需要我们创建数据操作接口的实现类,这为我们减少了很多工作量。
5.mybatis中所有的内容都是通过sql语句来完成的,所以针对性很强,如果后期需要迁移的话,难度比较大
1.1架构分析
1.流程架构分析
截屏2020-09-05下午2.11.32.png
2.源码包架构图
截屏2020-09-05下午2.14.43.png
二、开发使用
2.1添加依赖
<!--mysql数据库驱动坐标-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--引入springboot和mybatis起步依赖,包含了mybatis核心依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
2.2添加配置文件
#数据库的配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/travel
spring.datasource.username=root
spring.datasource.password=sf1005213565
#设置mybatis
#spring集成mybatis环境
#pojo别名扫描包
mybatis.type-aliases-package=com.shifeng.travel.domain.entity
#加载mybatis映射文件,告诉mapper配置文件的位置
mybatis.mapper-locations=classpath:mapper/*.xml
#配置项:开启下划线到驼峰的自动转换。作用:将数据库字段根据驼峰规则自动注入到对象属性。
mybatis.configuration.map-underscore-to-camel-case=true
2.3xml文件写sql
<?xml version="1.0" encoding="utf-8" ?> <!--你必须在第一行,太他妈操蛋了,搞死我了-->
<!-- 意思就是说,你需要严格按照mybatis-3-mapper.dtd规范进行 -->
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- com.shifeng.travel.mapper.UserMapper:表示对应UserMapper接口 -->
<mapper namespace="com.shifeng.travel.mapper.UserMapper">
<!-- queryUserList就是com.shifeng.travel.domain.entity.User中的方法
当包取了别名后就可以直接写User了-->
<select id="queryUserList" resultType="com.shifeng.travel.domain.entity.User">
select *from user where id = 1
</select>
<!--保存用户
parameterType:就是参数-->
<insert id="saveUser" parameterType="User" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
insert into
user(name, sex, age, phoneNum)
values (#{name}, #{sex}, #{age},#{phoneNum})
</insert>
</mapper>
三、操作数据表
3.1更新数据
注意:mybatis中更新返回的值是匹配的行数而不是影响的
行数
如果非要变成影响的行数需要做如下配置
spring.datasource.url=jdbc:mysql://${jdbc.host}/${jdbc.db}?useAffectedRows=true
3.2查询语句
3.3插入语句
3.4增加语句
注解操作
核心类分析
疑问
网友评论