Mybatis的开发有两种⽅式:
1. 注解
2. XML
在上一篇文章中我们介绍了通过注解的使用方式,在这篇文章中我们着重介绍XML的使用方式。
配置数据库连接
首先我们同样都要在YML文件中配置数据库连接。
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/mybatis_test?charsetEncoding=utf8&useSSL=false
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
除此之外还需要配置XML的文件路径。
mybatis:
#命名规则转换
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: false
#配置xml文件路径
mapper-locations: classpath:mapper/**Mapper.xml
持久层代码
Mapper接口
和之前相同,只需要在接口中实现方法声明,但是不同于之前直接用方法注解实现,此处方法的具体内容在XML文件中实现。在这里我们以查询为例。
@Mapper
public interface UserInfoMapper2 {
List<UserInfo> queryAllUser();
}
XML文件
以下是xml的固定格式。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mybatis_demo.mapper.UserInfoMapper2">
</mapper>
我们唯一需要改变的是<mapper>标签需要指定 namespace 属性,表示命名空间,路径填写对应的接口路径。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mybatis_demo.mapper.UserInfoMapper2">
<select id="queryAllUser" resultType="com.example.mybatis_demo.model.UserInfo">
select * from userinfo
</select>
</mapper>
<select>查询标签:是用来执⾏数据库的查询操作的
id :是和 Interface (接⼝)中定义的⽅法名称⼀样的,表⽰对接⼝的具体实现⽅法。
resultType :是返回的数据类型,也就是开头我们定义的实体类。
接下来进行单元测试观察结果,语句顺利执行。
对于可变参数的查询在上篇有过介绍,以及增删改查的具体思路都是差不多的,在这里不一一具体实现了。
开发中使用注解的方式还是XML的方式?
个人认为这取决于你所在公司或者部门同事采用的方式,个人应该多向团队去适应。如果你是一名个人开发者当然是自己怎么喜欢怎么来就好。