黑马JavaWeb+AI笔记 Day06 Web后端基础(MyBatis)
MyBatis是一款优秀的持久层框架,用于简化 JDBC 的开发。
一、MyBatis 简介
MyBatis 是一款优秀的 持久层 框架,用于简化 JDBC 的开发
✅操作步骤
- 创建 springboot 工程,引l入 Mybatis 相关依赖
- 准备数据库表、实体类
- application.properties中配置数据库连接信息
- 定义Mapper接口(@Mapper),编写SQL
📌SpringBoot 的单元测试类上需要加@SpringBootTest(会在单元测试运行时,加载springBoot的环境)
📌测试类所在包需要与引导类包名相同(或放在引导类所在包的子包下)
二、XML映射配置
在Mybatis中,既可以通过注解配置SQL语句,也可以通过XML配置文件配置SQL语句。
📌默认规则
- XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口放置在相同包下(同包同名)。
- XML映射文件的 namespace 属性为Mapper接口全限定名一致。
- XML映射文件中sql语句的 id 与Mapper接口中的方法名一致,并保持返回类型一致。resultType:查询返回的单条记录所封装的类型
使用注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂一点的语句,Java注解不仅力不从心,还会让本就复杂的 SQL语句更加混乱不堪。因此,如果你需要做一些很复杂的操作,最好用 XML 来映射语句。
选择何种方式来配置映射,以及是否应该要统一映射语句定义的形式,完全取决于你和你的团队。换句话说,永远不要拘泥于一种方式,你可以很轻松地在基于注解和XML的语句映射方式间自由移植和切换。
📌辅助配置
1.如果没有同包放置XML文件 可指定XML配置文件位置
mybatis.mapper-locations=classpath:mapper/*.xml
2.MybatisX 是一款基于 IDEA 的快速开发Mybatis的插件, 为效率而生, 可在XML文件和mapper文件之间快速跳转
3.配置Mybatis的日志输出
mybatis.configuration.log-impl = org.apache.ibatis.logging.stdout.StdoutImpl
三、数据库连接池
✅概念:数据库连接池是个容器,负责分配、管理数据库连接(Connection)。
✅作用:允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。释放空闲时间超过最大空闲时间的连接,来避免因为没有释放连接而引起的数据库连接遗漏。
✅优势:1.资源重用 2.提升系统响应速度 3.避免数据库连接遗漏
✅产品:Druid、Hikari(默认)
四、Mybatis 实现操作
符号 | 说明 | 场景 | 优缺点 |
---|---|---|---|
#[...} | 占位符。执行时,会将#{-替换为?,生成预编译SQL | 参数值传递 | 安全、性能高(推荐) |
$[...] | 拼接符。直接将参数拼接在SQL语句中,存在SQL注入问题 | 表名、字段名动态设置时使用 | 不安全、性能低 |
📌Mapper接口中方法形参出现两个及两个以上需使用@Param注解
@Select("select * from user where username = #{username} and password = #{password}")
public User findByusernameAndPassword(@Param("username") String username, @Param("password") String password);
📌基于官方骨架创建的springboot项目中,接口编译时会保留方法形参名,@Param注解可以省略(#{形参名})
五、SpringBoot项目配置文件
✅yml配置文件
- 数值前边必须有空格,作为分隔符
- 使用缩进表示层级关系,缩进时,不允许使用Tab键,只能用空格(idea中会自动将Tab转换为空格)
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
- #表示注释,从这个字符一直到行尾,都会被解析器忽略
📌在yml格式的配置文件中,如果配置项的值是以0开头的,值需要使用" "引起来,因为以0开头在yml中表示8进制的数据。
更多推荐
所有评论(0)