文章摘要: 持久层框架。
注释
该依赖的总结还未完成。
简介
简要说明
- 持久层框架。
- 负责将数据保存到数据库的代码。
主要功能
注意事项
适用场景
Maven坐标
<dependency> <!-- MyBatis -->
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>版本号</version> <!-- 请替换为实际的版本号 -->
</dependency>
问题
- POJO对象的属性必须拷贝数据库字段名
配置文件分类:主配置文件、映射文件
创建MyBatis的主配置文件
- 文件名称:
mybatis-config.xml- 目录位置:
src/main/resources/- 主要作用:用于配置连接数据库的环境以及MyBatis全局配置信息。
根标签
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--具体配置的内容-->
</configuration>
引入外部配置文件
<!--引入外部配置文件,在当前文件中通过`${key}`的方式访问value-->
<properties resource="db.properties"/>
为一个类型设置别名
<!--设置类型别名,为某一个具体的类型设置一个别名,来表示具体的类型-->
<typeAliases>
<!-- type:设置需要起别名的类型-->
<!-- alias:设置某个类型的别名-->
<typeAlias type="com.cykj.wellness.pojo.User" alias="User"/>
<!--通过包设置类型别名,指定包下所有的类型将全部拥有默认的别名,别名默认是类名,且不区分大小写-->
<package name="com.cykj.wellness.pojo"/>
</typeAliases>
配置连接数据库的环境
<!--配置连接数据库的环境-->
<environments default="development">
<environment id="development">
<!--事务管理器-->
<!--type:设置事务管理的方式,参数支持(JDBC | MANAGED)-->
<!-- - JDBC: 表示使用JDBC中原生的事务管理方式-->
<!-- - MANAGED: 被第三方管理,例如由Spring进行管理-->
<transactionManager type="JDBC"/>
<!--数据源-->
<!--type:设置数据源的类型,参数支持(POOLED | UNPOOLED | JNDI)-->
<!-- - POOLED:使用数据库连接池-->
<!-- - UNPOOLED:不使用数据库连接池-->
<!-- - JNDI:使用上下文中的数据源,其他数据源-->
<dataSource type="POOLED">
<!--驱动类-->
<property name="driver" value="#{jdbc.driverClassName}"/>
<!--数据库的地址-->
<property name="url" value="#{jdbc.url}"/>
<!--用户名-->
<property name="username" value="#{jdbc.username}"/>
<!--密码-->
<property name="password" value="#{jdbc.password}"/>
</dataSource>
</environment>
</environments>
引入MyBatis的映射文件
<!--引入MyBatis的映射文件-->
<mappers>
<!--引入单个映射文件-->
<mapper resource="mapper/UserMapper.xml"/>
<!--通过引入包的方式引入映射文件-->
<!--mapper接口和映射文件之间的“方法名”和“类名”必须保持一致-->
<!--mapper接口和映射之间的文件目录结构必须一致-->
<package name="com.cykj.wellness.mapper" />
</mappers>
mybatis的mapper关系映射配置文件
- 问题:若字段名和实体类中的属性名不一致,导致读取到键值对中的键的命名与java类中的属性名不一致,无法正确读取对应的值。
- 将SQL字段名(下划线)映射为Java的属性名(驼峰命名)。
- 作用:实现读取到数据库的信息后,字段的命名规范是驼峰命名的格式。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--提示,需要设置传入的数据和返回的数据-->
<mapper namespace="com.cykj.wellness.mapper.UserMapper">
<!--新增数据-->
<insert id="doCreate" parameterType="com.cykj.wellness.pojo.User">
</insert>
<!--删除数据-->
<delete id="doRemove" parameterType="int">
</delete>
<!--修改数据-->
<update id="doUpdate" parameterType="com.cykj.wellness.pojo.User">
</update>
<!--查询所有数据-->
<select id="findAll" resultType="com.cykj.wellness.pojo.User">
</select>
<!--查询 - 根据id查询数据-->
<select id="findById" resultType="com.cykj.wellness.pojo.User">
</select>
</mapper>
MyBatis获取参数值的方式
- MyBatis获取参数值的方式:
${}和#{}${}:字符串拼接的方式拼接SQL。#{}:占位符赋值的方式拼接SQL。- 若字符串类型或日期类型的字段进行赋值时,需要手动加单引号。