文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

SpringBoot集成JPA用法笔记

2024-12-03 04:08

关注

今天给大家整理SpringBoot集成JPA用法。希望对大家能有所帮助!

1.搭建SpringBoot项目

2.新建配置文件 application.yml

  1. server: 
  2. port: 8090 
  3. spring: 
  4. #通用的数据源配置 
  5.   datasource: 
  6. driverClassName: com.mysql.jdbc.Driver 
  7. url: jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf8 
  8. username: root 
  9. password: root 
  10. jpa: 
  11. #将默认的存储引擎切换为 InnoDB 
  12.     database-platform: org.hibernate.dialect.MySQL5InnoDBDialect 
  13. #配置在日志中打印出执行的 SQL 语句信息。 
  14.     show-sql: true 
  15.     hibernate: 
  16. #配置指明在程序启动的时候要删除并且创建实体类对应的表 
  17.       # validate 加载 Hibernate 时,验证创建数据库表结构 
  18.       # create 每次加载 Hibernate ,重新创建数据库表结构,这就是导致数据库表数据丢失的原因。 
  19.       # create-drop 加载 Hibernate 时创建,退出是删除表结构(退出是指退出sessionFactory) 
  20.       # update 加载 Hibernate 自动更新数据库结构 
  21.       # none 不启用 
  22.       ddl-auto: none 

 3、新建用户实体类 UserInfoDAO.java

  1. package my.springboot.jpa.entity; 
  2. import javax.persistence.*; 
  3. import java.util.Date
  4.  
  5. @Entity 
  6. @Table(name = "userinfo"
  7. public class UserInfoDAO { 
  8. @Id 
  9. @GeneratedValue(strategy = GenerationType.IDENTITY) 
  10. private  Integer id; 
  11. @Column 
  12. private String userName; 
  13. @Column 
  14. private Integer age; 
  15. @Column(length = 500) 
  16. private String address; 
  17. @Column(name = "create_date"
  18. private Date createDate; 
  19. @Column(name = "create_user"
  20. private String createUser; 
  21.  
  22. public Integer getId() { 
  23. return id; 
  24.     } 
  25.  
  26. public void setId(Integer id) { 
  27. this.id = id; 
  28.     } 
  29.  
  30. public String getUserName() { 
  31. return userName; 
  32.     } 
  33.  
  34. public void setUserName(String userName) { 
  35. this.userName = userName; 
  36.     } 
  37.  
  38. public Integer getAge() { 
  39. return age; 
  40.     } 
  41.  
  42. public void setAge(Integer age) { 
  43. this.age = age; 
  44.     } 
  45.  
  46. public String getAddress() { 
  47. return address; 
  48.     } 
  49.  
  50. public void setAddress(String address) { 
  51. this.address = address; 
  52.     } 
  53.  
  54. public Date getCreateDate() { 
  55. return createDate; 
  56.     } 
  57.  
  58. public void setCreateDate(Date createDate) { 
  59. this.createDate = createDate; 
  60.     } 
  61.  
  62. public String getCreateUser() { 
  63. return createUser; 
  64.     } 
  65.  
  66. public void setCreateUser(String createUser) { 
  67. this.createUser = createUser; 
  68.     } 

4、仓库接口类 UserIfoRepository

  1. package my.springboot.jpa.dao; 
  2. import my.springboot.jpa.entity.UserInfoDAO; 
  3. import org.springframework.data.jpa.repository.JpaRepository; 
  4. import org.springframework.stereotype.Repository; 
  5.  
  6. @Repository 
  7. public interface UserIfoRepository extends  
  8. JpaRepositoryInteger> { 

5、新建测试用户类 UserInfoTest.java

  1. package my.springboot.jpa; 
  2.  
  3. import my.springboot.jpa.dao.UserIfoRepository; 
  4. import my.springboot.jpa.entity.UserInfoDAO; 
  5. import org.junit.Test; 
  6. import org.junit.runner.RunWith; 
  7. import org.springframework.beans.factory.annotation.Autowired; 
  8. import org.springframework.boot.test.context.SpringBootTest; 
  9. import org.springframework.test.context.junit4.SpringRunner; 
  10. import java.util.Date
  11. import java.util.List; 
  12. import java.util.Optional; 
  13.  
  14.  
  15. @RunWith(SpringRunner.class) 
  16. @SpringBootTest 
  17. public class UserInfoTest { 
  18. @Autowired 
  19.     UserIfoRepository userIfoRepository; 
  20.  
  21. @Test 
  22.     public void test() { 
  23. //插入用户测试 
  24.         UserInfoDAO dao = new UserInfoDAO(); 
  25.         dao.setUserName("小明"); 
  26.         dao.setAge(32); 
  27.         dao.setCreateDate(new Date()); 
  28.         dao.setCreateUser("管理员"); 
  29.         dao.setAddress("苏州"); 
  30. userIfoRepository.save(dao); 
  31.         UserInfoDAO dao2 = new UserInfoDAO(); 
  32.         dao2.setUserName("小张"); 
  33.         dao2.setAge(35); 
  34.         dao2.setCreateDate(new Date()); 
  35.         dao2.setCreateUser("管理员"); 
  36.         dao2.setAddress("南京"); 
  37. userIfoRepository.save(dao2); 
  38.  
  39. // 查询多条记录 打印 
  40.         List list = userIfoRepository.findAll(); 
  41. for (UserInfoDAO item : list) { 
  42.  
  43.             System.out.println("姓名:" + item.getUserName()  
  44. " 年龄:" + item.getAge());        } 
  45. // 查询单个记录 
  46.         Optional mo = userIfoRepository.findById(2); 
  47.         System.out.println(mo.get().getUserName()); 
  48. //更新操作 
  49.         mo.get().setUserName("小明123"); 
  50. userIfoRepository.save(mo.get()); 
  51.         System.out.println(mo.get().getUserName()); 
  52. //删除记录 
  53.         userIfoRepository.delete(mo.get()); 
  54.     } 

6、配置生成数据表

  1. package my.springboot.jpa; 
  2. import org.springframework.boot.SpringApplication; 
  3. import org.springframework.boot.autoconfigure.SpringBootApplication; 
  4. import org.springframework.boot.autoconfigure.domain.EntityScan; 
  5. import org.springframework.data.jpa.repository.config.EnableJpaRepositories; 
  6.  
  7. @SpringBootApplication 
  8. @EntityScan(basePackages = {"my.springboot.jpa.entity"}) 
  9. @EnableJpaRepositories(basePackages = {"my.springboot.jpa.dao"}) 
  10. public class JpaApplication { 
  11. public static void main(String[] args) { 
  12.         SpringApplication.run(JpaApplication.class, args); 
  13.     } 
  14.  
  15.  
  16.  
  17.  
  18. @EntityScan(basePackages = {"my.springboot.jpa.entity"}) 
  19. @EnableJpaRepositories(basePackages = {"my.springboot.jpa.dao"}) 

7、项目结构图

本文转载自微信公众号「IT技术分享社区」,可以通过以下二维码关注。转载本文请联系IT技术分享社区公众号。

 

来源:IT技术分享社区内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯