spring-boot 集成jpa 持久层
来源:互联网 发布:淘宝设计论坛 编辑:程序博客网 时间:2024/06/03 14:45
spring-boot 集成jpa 持久层
说明
jpa 建议项目只做持久操作. 案列使用的mysql数据库
演示是基于第一个版本
pom修改
<!--添加单元测试 begin --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- 添加单元测试 end --> <!-- 使用 Spring-data-jpa 持久层 begin --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> </dependency> <!-- 使用 Spring-data-jpa 持久层 end -->
添加数据库配置文件
spring.datasource.url = jdbc:mysql://localhost:3306/数据库名字?useUnicode=true&characterEncoding=UTF-8spring.datasource.username = rootspring.datasource.password = *****spring.datasource.driverClassName = com.mysql.jdbc.Driverspring.jpa.show-sql = true# Hibernate ddl auto (create, create-drop, update)spring.jpa.hibernate.ddl-auto =none
Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto =none //none 实体类和db结构不映射 ..
官方推荐的是 update –程序启动自动更新表结构
User domain 源码
package com.jade.domian;import java.io.Serializable;import javax.persistence.*;@Entity@NamedQuery(name = "User.findAll", query = "SELECT u FROM User u")public class User implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private String id; private int age; @Column(name = "email_address") private String emailAddress; private String username; public User() { } public String getId() { return this.id; } public void setId(String id) { this.id = id; } public int getAge() { return this.age; } public void setAge(int age) { this.age = age; } public String getEmailAddress() { return this.emailAddress; } public void setEmailAddress(String emailAddress) { this.emailAddress = emailAddress; } public String getUsername() { return this.username; } public void setUsername(String username) { this.username = username; }}
UserRepository 源码
package com.jade.repository;import org.springframework.data.jpa.repository.JpaRepository;import com.jade.domian.User;/** * *@author jade *@date 2016年7月14日下午2:51:51 *@version 1.0 */public interface UserRepository extends JpaRepository<User, String> {}
添加UserRepository 继承 JpaRepository
继承关系: JpaRepository -PagingAndSortingRepository>CrudRepository->Repository
JpaRepository 官网源码如下:
/** * JPA specific extension of {@link org.springframework.data.repository.Repository}. * * @author Oliver Gierke */@NoRepositoryBeanpublic interface JpaRepository<T, ID extends Serializable> extends PagingAndSortingRepository<T, ID> @NoRepositoryBeanpublic interface PagingAndSortingRepository<T, ID extends Serializable> extends CrudRepository<T, ID> {@NoRepositoryBeanpublic interface CrudRepository<T, ID extends Serializable> extends Repository<T, ID> {
修改Application
package com.jade;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.EnableAutoConfiguration;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.data.jpa.repository.config.EnableJpaRepositories;/** * api 项目入口 * * @author jade * @version 1.0 * @date 2016-07-14 */@Configuration@ComponentScan@EnableAutoConfiguration@EnableJpaRepositoriespublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args);}}
测试
package main.java;import java.util.List;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.SpringApplicationConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.jade.Application;import com.jade.domian.User;import com.jade.service.UserServiceImpl;@RunWith(SpringJUnit4ClassRunner.class)@SpringApplicationConfiguration(Application.class)/** * 测试 *@author jade *@date 2016年7月14日下午3:18:34 *@version 1.0 */public class testJpa { @Autowired UserRepository res; @Test public void testGetForJpa(){ List<User> luesr=res.findAll(); for(User user :luesr){ System.out.println(user.getId() + " "+user.getUsername()); } }}
0 0
- spring-boot 集成jpa 持久层
- spring-boot集成JPA
- spring boot集成data-jpa
- 6.2 Spring Boot集成jpa
- Spring Boot 系列(九)数据层-集成Spring-data-jpa
- spring集成struts(持久化采用JPA)
- Spring Data JPA 持久层开发
- Spring Boot集成Spring Data Jpa
- 从零开始学spring-boot(2)-集成spring-data-jpa
- 从零开始学spring-boot(2)-集成spring-data-jpa
- spring boot+jpa+druid多数据源集成示例
- Spring Boot系列(十) 持久层框架--Mybatis
- spring-boot+mybatis开发实战:如何在spring-boot中使用myabtis持久层框架
- Spring boot学习笔记 003——Spring boot持久层
- Spring Boot JPA-Hibernate
- spring boot 配置 JPA
- Spring Boot JPA总结
- spring-boot-jpa
- 人月神话读书笔记(4)----贵族专制、民主政治和系统设计
- Tesseract-OCR3.0语言库训练步骤
- Android 开源框架Logger的使用
- CnCrypt代码 之 获取程序自身版本号
- java 位运算常用技巧
- spring-boot 集成jpa 持久层
- 51nod1623完美消除 【数位dp】
- C++实现RTMP协议发送H.264编码及AAC编码的音视频
- 这么久总算过了删数问题~~
- HashMap实现原理分析
- 改变webview字体大小
- python 深入
- 网络请求_Http协议详解
- eclipse新建Android项目无法显示xml布局文件