MyBatis
- 核心组件
- -SqlSessionFactory:用于创建SqlSession的工厂类
- -SqlSession:MyBatis核心组件,用于向数据库执行SQL-相当于JDBC中的请求
- -主配置文件:XML配置文件,可以对MyBatis的底层行为做出详细的配置
- 以上三个都被spring整合,开发过程中无需作太多的关注
- -Mapper接口:就是DAO接口,在MyBatis中习惯性的称之为Mapper
- 开发的时候只要写接口,底层会自动地帮我们映射为sql语句。
- -Mapper映射器:用于编写SQL,并将SQL和实体类映射的组件,采用XML、注解均可实现。
- 实例
- 使用MyBatis对用户表进行CRUD操作
- #{username}用于从接口函数中获取username的值.注意:是参数中的,而不是数据库之中的。
- salt为随机的字符串,就是为加密码的复杂程度。 在初始密码的基础上添加一些随机字符,然后再进行加密,防止被破解。
- @Mapper是Mybatis的注解 @Repository是spring的注解
- classpath指的是编译后的target目录下的classes文件夹
MyBatis的相关配置
# DataSourceProperties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/community?characterEncoding=utf-8&useSSL=false&serverTimezone=Hongkong
spring.datasource.username=root
spring.datasource.password=
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.maximum-pool-size=15
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.idle-timeout=30000
# MybatisProperties
mybatis.mapper-locations=classpath:mapper/*.xml
#这样配置了以后可以直接在mapper的select语句中直接写User的简称,而不需要写全称
mybatis.type-aliases-package=com.newcoder.community.entity
mybatis.configuration.useGeneratedKeys=true
mybatis.configuration.mapUnderscoreToCamelCase=true
因为配置信息太多,myBatis的配置容易出现问题,可以把日志的输出级别设为更低一些,设置为debug,使得能够打印出详细的sql语句,降低排错的难度,便于调试。
# logger
# 后面跟的包表示的是这个包下的日志级别是什么样的
logging.level.com.nowcoder.community=debug