mybatis注册了mapper但是还是报错_Spring Boot整合MyBatis连接数据库

5dc21755a35714f5dc04db2c256b29f6.png

0. 开发环境

  • IDE:IntelliJ IDEA 2017.1 x64
  • jdk:1.8.0_91
  • Spring Boot:2.1.1.RELEASE
  • Maven:3.3.9
  • MySQL:5.7.13

1. 引入依赖

<dependency>
    

这里,如果使用的 MySQL 是 8.X版本的话,mysql-connector-java 版本必须是 8.0以上,否则会报错:

java

2. 引入数据源

这里根据个人习惯使用 properties 或 yml 文件配置,本项目使用的是更为简洁的 yml 配置文件。
删除原来的 application.properties ,新建 application.yml。

application.yml 增加如下配置信息

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2B8
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver

这里,如果使用的 mysql-connector-java 是5.X版本的话,driver-class-name 可以直接省略使用默认,或者配置为 com.mysql.jdbc.Driver

到这里,Spring Boot就可以访问数据库了,我们来做下测试。

3. 测试

3.1 新建数据库表

CREATE 

3.2 创建实体

package 

3.3 DAO层

package 

3.4 Service层

package 

这里使用 @Autowired 自动装配TestMapper时会有报错,原因是TestMapper使用了@Mapper注解,idea不能把@Mapper注解的TestMapper识别为Bean,但实际运行时@Mapper会被Spring识别为Bean,自动装配不会出错。所以这里的报错可以不用在意。但如果看着代码中有报错很不顺眼,可以在TestMapper类增加@Repository注解,标注该类为DAO组件。

3.5 Controller层

package 

3.6 测试

使用Postman进行测试,输出结果如下

3.6.1 select

3aec1d3443699b5cfe89d628609c716e.png

3.6.2 insert

15620e8740133fc1d78c53c34c41c581.png

Postman接收到输出为1,表示成功,我们去查下数据库

a05dd60dfb7bb186d8afff6726f361fe.png

数据成功插入。

4. MyBatis映射文件

以上,我们访问数据库时,SQL语句还是写死在代码里面,处理起来并没有很方便。通常,我们把SQL语句与代码分离,使用MyBatis映射文件方式来访问数据库。

4.1 MyBatis配置

我们在resources文件夹下新建mapper文件夹,用于存放MyBatis映射文件

c77384545052c91c90d0ce6f8e7090c2.png

application.yml 增加MyBatis配置信息

mybatis:
  mapper-locations: classpath:mapper/*.xml  #对应mapper映射xml文件所在路径
  type-aliases-package: cn.wbnull.springbootdemo.model  #对应实体类路径

完整配置如下,注意spring与mybatis都是根节点

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2B8
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
#
mybatis:
  mapper-locations: classpath:mapper/*.xml  #对应mapper映射xml文件所在路径
  type-aliases-package: cn.wbnull.springbootdemo.model  #对应实体类路径

4.2 DAO层

我们创建一个新的DAO类

package 

4.3 创建MyBatis映射文件

resources/mapper下新建映射文件 TestMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>

这里着重注意这几点

这里着重注意这几点

1、<mapper namespace="cn.wbnull.springbootdemo.dao.TestMapperV2"> namespace 一定要对应自己dao包所在的包路径,对应我们需要匹配的dao层类
2、<resultMap id="BaseResultMap" type="cn.wbnull.springbootdemo.model.TestModel"> type 一定要对应我们需要匹配的实体类
3、 <id column="id" property="id" jdbcType="INTEGER"/>
<result column="name" property="name" jdbcType="VARCHAR"/>
对应数据库表的字段
4、<select id="select" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/> from test
</select>
<select> 表示这是一条查询语句, id="select"一定要与dao层需要匹配的方法名一致,resultMap 表示对应的返回值类型
5、<insert id="insert" parameterType="cn.wbnull.springbootdemo.model.TestModel"> parameterType表示对应的输入参数类型

4.4 Service层

创建一个新的Service类

package 

4.5 Controller层

创建一个新的Controller类

package 

4.6 项目启动类

增加@MapperScan("cn.wbnull.springbootdemo.dao"),对应DAO层的包名

package 

4.7 测试

4.7.1 select

747275a0bfcfb4db429c13eff377098e.png

4.7.2 insert

e7abe4bebc75b46ee91829676e8fea8a.png

Postman接收到输出为1,表示成功,我们去查下数据库

b5a14af1c56055a152f041bb86fbc65c.png

数据成功插入

截至这里,Spring Boot已成功整合MyBatis并连接上了数据库,且测试正常。

但我们实际开发过程中,如果存在大量数据库表,那我们就需要创建大量的实体类、DAO层、映射文件,工作量较大。我们使用mybatis generator来自动生成代码。

5. Generator

5.1 新建数据库表

我们先新建一个数据库表,便于一会自动生成代码使用

CREATE 

5.2 Generator配置文件

在resources文件夹下新建generator文件夹,generator下新建generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?>

5.3 引入依赖

<plugin>
	

5.4 Generator配置

1、Run --> Edit Configurations...

ed1506449495599d2a4a41615b18e3cc.png

2、增加Maven配置

d204360e7a9e40ffa5f8410682726c23.png

3、增加Generator配置 (mybatis-generator:generate -e),OK

da3840ef554ad9c88abd87f316ea7a14.png

4、运行

a4dac6ab3fc4006e2781d54c263192c2.png

生成代码如下。这里我们运行成功后,同一个表,不要运行多次,否则mapper映射文件中会生成多次的代码。

8ec08e0f3d96c56292fc3cf133f2ca4e.png
package 
<?xml version="1.0" encoding="UTF-8" ?>

5.5 测试

5.5.1 Service层

package 

5.5.1 Controller层

package 

5.5.2 insert

6289b31d46cd1fe2471afe8503f76172.png

Postman接收到输出为1,表示成功,我们去查下数据库

1c17be19a45e354bcf4a3d84ec08bf4f.png

数据成功插入

这样,对于大量的数据库表,我们就可以使用Generator来生成基本的代码,然后自己再添加其他所需要的代码即可。

GitHub:

dkbnull/SpringBootDemo​github.com
706491a6302a1074112b1366a5886e3f.png

CSDN:

https://blog.csdn.net/dkbnull/article/details/87278817​blog.csdn.net

微信:

Spring Boot实战:整合MyBatis连接数据库​mp.weixin.qq.com
b11efb6b86363d6f57f61132247ebc93.png

微博:

https://weibo.com/ttarticle/p/show?id=2309404339889012367676​weibo.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值