spring-boot整合spring-data-jpa
- 依赖
<!--spring data jpa--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!--mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency>
- 配置数据源
```
server:
port: 8080
#data source
spring:测试的时候可以不用mysqldatasource:url: jdbc:mysql://127.0.0.1:3306/demo?characterEncoding=utf-8&useSSL=trueusername: rootpassword: rootdriver-class-name: com.mysql.jdbc.Driver
datasource: driver-class-name: org.h2.Driver url: jdbc:h2:~/test username: sa password: h2: # 使用H2 控制台 访问页面http://localhost:8080/h2-console/,默认的数据库为jdbc:h2:mem:testdb console: enabled: true jpa: show-sql: true hibernate: ddl-auto: update #加载hibernate自动更新数据库结构
3. 创建实体类
@Data @Entity @Table(name = "tb_user") public class User implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private Integer age;
private String address;
}
#我这里是把实体类单独抽成了一个名为pojo的maven项目,所以要在pojo项目中引入如下依赖
3. 创建dao
/**
- @author Mr.Guan
- @since 2019/11/20
- 用户dao 使用Spring data jpa 不需要实现类,
- 继承JpaRepository<User, Integer>即可,User为实体,Integer为id数据类型
- / public interface UserDao extends JpaRepository<User, Integer> { } ```
编写serviceImpl(接口就不在此列出了)
@Service public class UserServiceImpl implements UserService { @Autowired private UserDao userDao; @Override public List<User> findAll() { return userDao.findAll(); } /** * 注意:查不到会报错 * @param id * @return */ @Override public User findById(Integer id) { return userDao.findById(id).get(); } /** * 注意:对象所有值为空id会自增插进去 * @param user * @return */ @Override public User save(User user) { return userDao.save(user); } /** * 注意:修改也是调用的save方法,必须包含数据库存在的id,否则会插入 * 即:数据存在则修改,不存在则新增,条件是数据库中是否存在此id * @param user * @return */ @Override public User update(User user) { return userDao.save(user); } /** * 注意:不存在的数据删除会报错 * @param id */ @Override public void deleteById(Integer id) { userDao.deleteById(id); } }
编写controller测试
@RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @RequestMapping(value = "/findAll", method=RequestMethod.GET) public List<User> findAll(){ return userService.findAll(); } @RequestMapping(value = "/findById/{id}", method=RequestMethod.GET) public User findById(@PathVariable Integer id){ return userService.findById(id); } @RequestMapping(value = "/save", method=RequestMethod.POST) public User save(User user){ return userService.save(user); } @RequestMapping(value = "/update", method=RequestMethod.PUT) public User update(User user){ return userService.update(user); } @RequestMapping(value = "/deleteById/{id}", method=RequestMethod.DELETE) public String deleteById(@PathVariable Integer id){ userService.deleteById(id); return "删除成功"; } }
源码:https://github.com/mrguanxs/boot_cloud.git 中的boot-ssh-provider项目
相关文章
- 基于-SLF4J-MDC-机制的日志链路追踪配置属性
ums: # ================ 基于 SLF4J MDC 机制的日志链路追踪配置属性 ================ mdc: # 是否支持基于 SLF4J MDC
- ajax-跨域访问
ajax 跨域访问 <!DOCTYPE html> <html xmlns:th="http://www.w3.org/1999/xhtml"> <head>
- 给第三方登录时用的数据库表-user_connection-与-auth_token-添加-redis-cache
spring: # 设置缓存为 Redis cache: type: redis # redis redis: host: 192.168.88.88 port
- Java动态代理
Jdk动态代理 通过InvocationHandler和Proxy针对实现了接口的类进行动态代理,即必须有相应的接口 应用 public class TestProxy { public
- Java读取classpath中的文件
public void init() { try { //URL url = Thread.currentThread().getContextClassLo
随机推荐
- 基于-SLF4J-MDC-机制的日志链路追踪配置属性
ums: # ================ 基于 SLF4J MDC 机制的日志链路追踪配置属性 ================ mdc: # 是否支持基于 SLF4J MDC
- ajax-跨域访问
ajax 跨域访问 <!DOCTYPE html> <html xmlns:th="http://www.w3.org/1999/xhtml"> <head>
- 给第三方登录时用的数据库表-user_connection-与-auth_token-添加-redis-cache
spring: # 设置缓存为 Redis cache: type: redis # redis redis: host: 192.168.88.88 port
- Java动态代理
Jdk动态代理 通过InvocationHandler和Proxy针对实现了接口的类进行动态代理,即必须有相应的接口 应用 public class TestProxy { public
- Java读取classpath中的文件
public void init() { try { //URL url = Thread.currentThread().getContextClassLo