? ? ? ? ? ? ? ?
今天給大家整理SpringBoot集成JPA用法。希望對大家能有所幫助!
搭建SpringBoot項目
? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ?
新建配置文件 application.yml
server:
port: 8090
spring:
#通用的數據源配置datasource:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf8
username: root
password: root
jpa:
#將默認的存儲引擎切換為 InnoDBdatabase-platform: org.hibernate.dialect.MySQL5InnoDBDialect
#配置在日志中打印出執行的 SQL 語句信息。show-sql: truehibernate:
#配置指明在程序啟動的時候要刪除并且創建實體類對應的表# validate 加載 Hibernate 時,驗證創建數據庫表結構# create 每次加載 Hibernate ,重新創建數據庫表結構,這就是導致數據庫表數據丟失的原因。# create-drop 加載 Hibernate 時創建,退出是刪除表結構(退出是指退出sessionFactory)# update 加載 Hibernate 自動更新數據庫結構# none 不啟用ddl-auto: none
3、新建用戶實體類 UserInfoDAO.java
package my.springboot.jpa.entity;
import javax.persistence.*;
import java.util.Date;
/*** 用戶表實體* **/
@Entity
@Table(name = "userinfo")
public class UserInfoDAO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column
private String userName;
@Column
private Integer age;
@Column(length = 500)
private String address;
@Column(name = "create_date")
private Date createDate;
@Column(name = "create_user")
private String createUser;public Integer getId() {
return id;}public void setId(Integer id) {
this.id = id;}public String getUserName() {
return userName;}public void setUserName(String userName) {
this.userName = userName;}public Integer getAge() {
return age;}public void setAge(Integer age) {
this.age = age;}public String getAddress() {
return address;}public void setAddress(String address) {
this.address = address;}public Date getCreateDate() {
return createDate;}public void setCreateDate(Date createDate) {
this.createDate = createDate;}public String getCreateUser() {
return createUser;}public void setCreateUser(String createUser) {
this.createUser = createUser;}
}
4、倉庫接口類 UserIfoRepository
package my.springboot.jpa.dao;
import my.springboot.jpa.entity.UserInfoDAO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
/*** 倉庫接口類 UserIfoRepository**/
@Repository
public interface UserIfoRepository extends
JpaRepository<UserInfoDAO, Integer> {
}
5、新建測試用戶類 UserInfoTest.java
package my.springboot.jpa;import my.springboot.jpa.dao.UserIfoRepository;
import my.springboot.jpa.entity.UserInfoDAO;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.Date;
import java.util.List;
import java.util.Optional;/*** 測試UserInfo用法**/
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserInfoTest {
@AutowiredUserIfoRepository userIfoRepository;@Testpublic void test() {
//插入用戶測試UserInfoDAO dao = new UserInfoDAO();dao.setUserName("小明");dao.setAge(32);dao.setCreateDate(new Date());dao.setCreateUser("管理員");dao.setAddress("蘇州");
userIfoRepository.save(dao);UserInfoDAO dao2 = new UserInfoDAO();dao2.setUserName("小張");dao2.setAge(35);dao2.setCreateDate(new Date());dao2.setCreateUser("管理員");dao2.setAddress("南京");
userIfoRepository.save(dao2);// 查詢多條記錄 打印List<UserInfoDAO> list = userIfoRepository.findAll();
for (UserInfoDAO item : list) {System.out.println("姓名:" + item.getUserName()
+ " 年齡:" + item.getAge()); }
// 查詢單個記錄Optional<UserInfoDAO> mo = userIfoRepository.findById(2);System.out.println(mo.get().getUserName());
//更新操作mo.get().setUserName("小明123");
userIfoRepository.save(mo.get());System.out.println(mo.get().getUserName());
//刪除記錄userIfoRepository.delete(mo.get());}
}
6、配置生成數據表
package my.springboot.jpa;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;@SpringBootApplication
@EntityScan(basePackages = {"my.springboot.jpa.entity"})
@EnableJpaRepositories(basePackages = {"my.springboot.jpa.dao"})
public class JpaApplication {
public static void main(String[] args) {SpringApplication.run(JpaApplication.class, args);}
}@EntityScan(basePackages = {"my.springboot.jpa.entity"})
@EnableJpaRepositories(basePackages = {"my.springboot.jpa.dao"})
7、項目結構圖
? ? ? ? ? ? ? ?
IT技術分享社區
個人博客網站:https://programmerblog.xyz
文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識