org.springframework.boot
spring-boot-starter-jdbc
mysql
mysql-connector-java
runtime
org.springframework.boot
spring-boot-starter-web
这里需要注意的一点就是配置下时区就行。serverTimezone=GMT%2B8或者serverTimezone=UTC
spring:
datasource:
username:
password:
url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
@SpringBootTest
class JdbcintegrationApplicationTests {
@Autowired
DataSource dataSource;
@Test
void contextLoads() throws SQLException {
//查看默认数据源 class com.zaxxer.hikari.HikariDataSource
System.out.println(dataSource.getClass());
//获取数据库连接
Connection connection = dataSource.getConnection();
// xxxx Template:Springboot已经配置好模板bean,拿来即用 CRUD
System.out.println(connection);
connection.close();
System.out.println("finish");
}
}
Sprint框架对JDBC的简单封装,提供了一个JDBCTemplate对象简化JDBC的开发。在Springboot中存在着大量的xxxx Template模板,这种主要就是实现了一些常见的JDBC操作,点进源码查看,就是进行了一些初始化,并把一些场景的JDBC操作给封装了。
具体使用如下:
@RestController
public class JDBCController {
@Autowired
JdbcTemplate jdbcTemplate;
//查询数据库的所有信息
//没有实体类,数据库中的数据怎么获取
@GetMapping("/userList")
public List
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.4
org.springframework.boot
spring-boot-starter-jdbc
mysql
mysql-connector-java
runtime
org.springframework.boot
spring-boot-starter-web
@Mapper注解:说明这个接口是一个Mybatis映射器,也可以在Spring配置类中使用@MapperScan(“com.example.mapper”)注解来扫描映射器,这两个使用一个就行。
@Repository:将映射器添加到容器,表明这是Dao的Bean
//@Mapper这个注解表示了这是一个mybatis 的mapper类; @Repository表明这是Dao的Bean
@Mapper
@Repository
public interface UserMapper {
List queryUserList();
User queryUserById(Integer id);
int addUser(User user);
int updateUser(User user);
int deleteUser(Integer id);
}
这其实就类似之前写的impl实现类一样。
insert into user(id,name,pwd) values (#{id},#{name},#{pwd})
update user set name=#{name},pwd=#{pwd} where id = #{id}
delete from user where id = #{id}
在这里容易出现一个错误,详情参考
常见错误调试
spring.datasource.username=
spring.datasource.password=
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#整合mybatis
mybatis.type-aliases-package=com.example.springbootmybatis.pojo
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
@RestController 相比于controller,主要是这个直接返回字符串,这样在界面上显示比较直观。
@RestController
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/queryUserList") //url都是用get请求
public List queryUserList(){
List userList = userMapper.queryUserList();
for(User user : userList){
System.out.println(user);
}
return userList;
}
@GetMapping("/addUser")
public String addUser(){
userMapper.addUser(new User(5,"x1","12345"));
return "add-ok";
}
@GetMapping("/updateUser")
public String updateUser(){
userMapper.updateUser(new User(5,"x2","123456"));
return "update-ok";
}
@GetMapping("/deleteUser")
public String deleteUser(){
userMapper.deleteUser(5);
return "delete-ok";
}
}
参考博客
https://javabook.shiguangping.com/frame4/%E6%95%B4%E5%90%88Mybatis%E6%A1%86%E6%9E%B6.html
https://javabook.shiguangping.com/frame4/%E6%95%B4%E5%90%88JDBC.html