SpringBoot学习(三)(整合JdbcTemplate、mybatis注解版、springdatajpa)
整合之前
1、pom.xml添加mysql依赖
<!-- mysql 依赖 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
2、application.properties加入数据库连接配置
#################################数据库连接配置######## spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/stuspringboot spring.datasource.username=root spring.datasource.password=root
一、整合JdbcTemplate
1、pom.xml添加相关依赖
<!-- mysql 依赖 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- jdbcTemplate 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
2、UserServiceImpl使用JdbcTemplate
@Service public class UserServiceImpl implements UserService { @Autowired private JdbcTemplate jdbcTemplate; @Transactional public User add(String name,Integer age) { User user = new User(name,age); jdbcTemplate.update("INSERT INTO user VALUES(?,?,?)", user.getId(), user.getName(), user.getAge()); return user; } }
3、 UserController
@RestController @RequestMapping(value = "/user") public class UserController { @Autowired private UserService userService; @RequestMapping(value = "/add",method = RequestMethod.POST) public User add(String name,Integer age){ User user = userService.add(name, age); return user; } }
4、启动项目测试成功
二、整合Mybatis(注解版)
1、pom.xml添加依赖
<!-- mybatis 依赖 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency>
2、UserMapper
public interface UserMapper { @Select("SELECT * FROM USER WHERE name = #{name}") User findByName(@Param("name") String name); }
3、UserServiceImpl
@Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public User findByName(String name) { return userMapper.findByName(name); } }
注入userMapper时,在IDEA环境下会报错,但是不影响使用,如果看着不爽,可以参考https://www.cnblogs.com/waterystone/p/6214212.html 解决
4、UserController添加
@RequestMapping(value = "/{name}",method = RequestMethod.GET) public User find(@PathVariable String name){ User user = userService.findByName(name); return user; }
5、启动类添加@MapperScan
@SpringBootApplication @MapperScan(basePackages = "com.caofanqi.mapper") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
6、启动测试如下
7、整合Mybatis分页插件PageHelper
①pom.xml添加
<!-- springboot 整合 pagehelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.5</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.7</version> </dependency>
②application.properties配置文件添加
###################pagehelper分页插件##################### logging.level.com.example.demo.dao=DEBUG pagehelper.helperDialect=mysql pagehelper.reasonable=true pagehelper.supportMethodsArguments=true pagehelper.params=count=countSql pagehelper.page-size-zero=true
③Mapper添加方法
@Select("SELECT * FROM USER") List<User> list();
④UserServiceImpl添加方法,page当前页,size当前页数量
public List<User> list(Integer page,Integer size){ // 开启分页插件,放在查询语句上面 PageHelper.startPage(page, size); //查询语句 List<User> userList = userMapper.list(); // 封装分页之后的数据 PageInfo<User> pageInfoUserList = new PageInfo<User>(userList); //通过getList()获取分页后的数据 return pageInfoUserList.getList(); }
⑤UserController添加代码
@RequestMapping(value = "/list/{page}/{size}",method = RequestMethod.GET) public List<User> list(@PathVariable Integer page,@PathVariable Integer size){ return userService.list(page,size); }
⑥运行测试如下
三、整合SpringDataJpa
1、pom.xml添加
<!-- 整合 springdatajpa --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
2、实体类
package com.caofanqi.entity; import com.caofanqi.util.StringUtil; import lombok.Data; import javax.persistence.*; @Data @Entity(name="user") public class User { /** * JPA提供的四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO. * TABLE:使用一个特定的数据库表格来保存主键。 * SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。 * IDENTITY:主键由数据库自动生成(主要是自动增长型) * AUTO:主键由程序控制,如果不指定主键生成策略,默认为AUTO */ @Id @GeneratedValue(strategy = GenerationType.AUTO) private String id; private String name; private Integer age; /** * 对应的数据库字段,默认驼峰命名法,如果不一致可以通过@Column的name属性修改 */ @Column(name = "id_card") private String idCard; public User(String name, Integer age) { this.id = StringUtil.guid(); this.name = name; this.age = age; } }
3、UserDao
package com.caofanqi.dao; import com.caofanqi.entity.User; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; import java.util.List; @Repository public interface UserDao extends JpaRepository<User,String> { /** * 可以通过@Query,并设置nativeQuery = true,写SQL语句 * 注意:LIMIT 的以一个参数是起始行数 =(当前页-1)* pageSize */ @Query(value = "SELECT * FROM user LIMIT ?1,?2",nativeQuery = true) List<User> list(Integer startRow, Integer pageSize); }
4、UserServiceImpl添加userDao注入和方法
@Autowired private UserDao userDao; public User findById(String id){ Optional<User> opUser = userDao.findById(id); return opUser.get(); }
5、UserController添加方法
@RequestMapping(value = "/find/{id}",method = RequestMethod.GET) public User findById(@PathVariable String id){ User user = userService.findById(id); return user; }
6、启动运行如下
项目源码:https://gitee.com/itcaofanqi/CaoFanqiStudyRepository/tree/master/stuspringboot/
转载于:https://my.oschina.net/caofanqi/blog/3010732
- 点赞
- 收藏
- 分享
- 文章举报
- spring boot整合mybatis、Junit、spring data JPA、redis
- Maven学习笔记(十)-Maven整合SSHSJ(Spring+SpringMVC+Hibernate+Spring Data JPA+JdbcTemplate)框架
- Spring Boot学习进阶笔记(四)-多数据源配置(JdbcTemplate、Spring-data-jpa)
- Spring Boot学习进阶笔记(四)-多数据源配置(JdbcTemplate、Spring-data-jpa)
- Spring boot学习(三) Spring boot整合mybatis
- 使用spring-data-jpa+spirngboot整合swagger+vuejs实现一套简单的增删改查demo
- 深入学习spring-boot系列(二)--使用spring-data-jpa
- 深入学习spring-boot系列(二)--使用spring-data-jpa
- SpringCloud SpringBoot mybatis 分布式微服务(十一)Spring Boot多数据源配置与使用(Spring-data-jpa支持)
- Spring-boot学习(二):IntelliJ IDEA Spring-boot 整合mybatis
- SpringBoot 快速整合Mybatis(去XML化+注解进阶)
- SpringBoot数据库篇(三):整合mybatis(注解形式)
- SpringBoot整合SpringData JPA入门到入坟
- 深入学习spring-boot系列(二)--使用spring-data-jpa
- 深入学习spring-boot系列(二)--使用spring-data-jpa
- Spring Boot学习之旅:(十六)整合mybatis及日志
- SpringBoot+Mybatis(注解开发)整合实例
- SpringBoot 快速整合Mybatis(去XML化+注解进阶)
- jpa学习5--spring data jpa 中的JpaRepository 使用 @Query 注解
- springBoot整合springData Jpa