发布于2021-03-13 13:47 阅读(925) 评论(0) 点赞(5) 收藏(0)
SprintBoot使用mybatis连接Mysql数据库,因此需要导入mybatis和MySQL驱动这两个依赖。其次需要导入一个druid的连接池依赖。
mybatis依赖和druid依赖我们可以去maven仓库进行查找。maven仓库(注:要用spring-boot-stater-mybatis和spring-boot-stater-druid),并将其xml代码复制到项目的pom.xml中。
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
创建你想要获取的表对应的Java实体类。可以通过IDEA创建也可以手工创建。
package com.hky.springboothelloworld.entity;
import lombok.Data;
@Data
public class UserTest {
private String name;
private String password;
}
由于mybatis是用mapper接口访问数据库,因此在实体类父目录下创建mapper文件夹,并在mapper下创建UserMapper接口。
package com.hky.springboothelloworld.mapper;
import com.hky.springboothelloworld.entity.User;
import com.hky.springboothelloworld.entity.UserTest;
import java.util.List;
public interface UserMapper {
List<UserTest> findAll();
}
mapper接口已经创建,但是项目并不知道mapper在哪里,因此要在启动类中添加@MapperScan(basepackage= “mapper文件夹的路径”)。
这样启动类就知道mapper接口的位置。
@SpringBootApplication
@MapperScan(basePackages = "com.hky.springboothelloworld.mapper")
public class SpringbootHelloworldApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootHelloworldApplication.class, args);
}
}
虽然创建了UserMapper接口,但是其中只有一个空方法findAll。因此要对其进行配置。
在resource目录下创建mapper目录,在该目录下创建对应mapper接口的xml文件。
创建后可以去网上搜索mybatis 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.hky.springboothelloworld.mapper.UserMapper"> #namespace的值应该是mapper接口包名
<select id="findAll" resultType="UserTest"> #实现sql操作。resultType=“实体类名字” 。
select * from usertest;
</select>
</mapper>
虽然创建了实体类、mapper接口、mapper接口的xml配置文件,但是该配置文件有三个问题:
1.项目工程不知道该配置文件在哪里。
2.没有开启驼峰映射。
3.上述代码中resultType=“实体类名字”,该配置文件并不知道这个别名代指的是谁。
因此,我们需要在yml配置文件中写入一下内容:
mybatis:
mapper-locations: classpath:mapper/*.xml #指定mapper接口的xml配置文件的路径
type-aliases-package: com.hky.springboothelloworld.entity #指定别名对应的实体在哪里
configuration:
map-underscore-to-camel-case: true #驼峰映射
在上述内容都实现后,就是在yml文件中写入数据库连接所需要的东西,包括:驱动,账号,密码,url,连接池。
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver #由于已经导入MySQL依赖,这里选择带CJ的驱动
url: jdbc:mysql://192.168.1.105:3306/test?serverTimezone=UTC #这里由于驱动版本高,因此需要指定时区为东八区
type: com.alibaba.druid.pool.DruidDataSource
username: dev
password: "XXX"
上面的工作都完成后就可以进行测试了。
我们直接对我们创建的mapper接口右键,点击goto->test,并勾选findAll函数。IDEA会自动帮我们创建测试类。
package com.hky.springboothelloworld.mapper;
import com.hky.springboothelloworld.SpringbootHelloworldApplicationTests;
import com.hky.springboothelloworld.entity.User;
import com.hky.springboothelloworld.entity.UserTest;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
class UserMapperTest extends SpringbootHelloworldApplicationTests { #这里继承主测试类
@Autowired
private UserMapper usermapper;
@Test
void findAll() {
List<UserTest> result = usermapper.findAll();
for (UserTest user : result) {
System.out.println(user); #输出读取的数据库内容
}
}
}
原文链接:https://blog.csdn.net/weixin_44275712/article/details/114656430
作者:Hdhhd
链接:http://www.javaheidong.com/blog/article/114344/d8b8df716cc0ee8aa3a1/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!