一、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进制的数据。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐