小编这次要给大家分享的是IDEA中怎么创建Spring Data Jpa项目,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。
一、IDEA 创建工程
使用IDEA 创建工程的过程,使用文字做简单描述。
做完最后一步,工程就创建完成了。
PS:在配置 IEAD 中的 Maven 功能时,将“Always update snapshots” 选中,这样就会及时更新测试包,并且不缓存Maven 的错误信息。
1.1、Pom 文件中的依赖信息
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
二、编辑配置文件
在 resources 目录中创建配置文件:application.yml;添加数据源等信息。
spring:
datasource:
url: jdbc:mysql://dbserver.com:3306/user?useUnicode=true&characterEncoding=utf-8
username: username
password: password
driver-class-name: com.mysql.cj.jdbc.Driver
server:
port: 8080
compression:
enabled: true
servlet:
context-path: /
三、编写实体类
创建User的实体类 Entity/User.java(省略了getter&setter方法;如果不写的话,会对数据操作失败)。
/**
* 使用JPA注解配置映射关系
*/
@Entity //告诉JPA这是一个实体类(和数据表映射的类)
@Table(name = "tbl_user") //@Table来指定和哪个数据表对应;如果省略,默认表名就是该类名的小写:user
public class User {
@Id //表示这个属性是数据表中的主键
@GeneratedValue(strategy = GenerationType.IDENTITY) //还是一个自增的主键
private Integer id;
@Column(name = "last_name",length = 50) //这是和数据表对应的一个列,可以定义其在数据表中的名字及长度
private String lastName;
@Column //省略的情况,默认列名就是属性名
private String email;
}
使用JPA的一个好处就是,它能够根据实体类自动创建数据库表,只需简单配置几步即可:
在application.yml文件中增加(jpa 也是spring下的一个属性,所以它也是在spring这个层级下的):
jpa:
hibernate:
ddl-auto: update #定义数据表的生成策略。update:更新或者创建数据表结构
show-sql: true #控制台显示sql语句
运行主程序,控制台会报错找不到对应的表,但是这实际上是正常的,去数据库看就可以发现名为tbl_user的表已经创建成功了,而且是根据实体类中的设置创建的。
四、持久层接口
JPA中有许多封装好的对数据库进行操作的方法,不需要我们再写sql语句,而是直接调用其中的方法,就可以完成对数据的操作了。而这时,持久层只需继承JpaRepository类就可以了。
/**
* Dao/UserRepository.java
* 继承JpaRepository来完成对数据库的操作
* JpaRepository<T,id>,T表示要进行操作的实体类,id表示类的主键的类型
*/
public interface UserRepository extends JpaRepository<User,Integer> {
}
五、控制层
编写控制层代码来测试一下是否成功。因为没有界面,所以这边直接用@RestController注解来返回json串就好了,把持久层接口自动注入进来,直接调用其中对应的方法。
@RestController
@EnableAutoConfiguration
public class UserController {
@Autowired
UserRepository userRepository;
@GetMapping("/user/{id}")
public User getUser(@PathVariable("id") Integer id) {
Optional<User> optional = userRepository.findById(id);
if (optional.isPresent()) {
User user = optional.get();
return user;
} else {
return new User();
}
}
@GetMapping("/user")
public User insertUser(User user) {
User save = userRepository.save(user);
return save;
}
}
六、测试
1.首先插入一条数据:
地址栏输入 :http://localhost:8080/user lastName=zhangsan&email=aa
2、查询:
地址栏输入 :http://localhost:8080/user/1
看完这篇关于IDEA中怎么创建Spring Data Jpa项目的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。