SpringBoot集成JPA用法笔记

               

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

  1. 搭建SpringBoot项目

               

               

               

  1. 新建配置文件 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及串口基础知识硬件:断路器、接触器、继电器基础知识

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/270680.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】有的共享软件赚了一百万美元,而为什么你没有?我的软件推广成功之路...

有的共享软件赚了一百万美元&#xff0c;而为什么你没有&#xff1f; 转自&#xff1a;http://blog.csdn.net/wangjiwei2010/article/details/1267044 译&#xff1a;DreamGoal 原作&#xff1a;Steve Pavlin 几个月以前&#xff0c;我决定对共享软件业进行一项非正式的长期研…

vue全局引入openlayers_vue中使用OpenLayers(一):引入谷歌地图

vue中使用OpenLayers(一)&#xff1a;引入谷歌地图第一步npm install olpackage.json 中可以看到第二步引入import "ol/ol.css";import Map from "ol/Map";import Feature from "ol/Feature";import View from "ol/View";import XYZ f…

显示器知识:分辨率1080P、2K、4K、8K相关知识介绍,看完你就懂了

现在各种电视和显示器都会出现4K、高清等字样。4K到底意味着什么呢&#xff1f; 它比超高清(Ultra HD)的像素还要多吗&#xff1f; 如果4K是1080p的四倍&#xff0c;那是否意味着4K就等于4320p&#xff1f; 以上三个问题按顺序回答&#xff1a;视情况而定&#xff1b;有时候是这…

c++大文本比较_Excel – 将文本转换为数值,第二种方法会的请举左手

工作中经常收到的数据是从系统直接导出的&#xff0c;有的数据看上去是数字&#xff0c;其实是文本格式。这种数字在 Excel 看来就是个文本&#xff0c;无法参与任何计算分析。所以首先就要把它们转换成真正的数值。案例&#xff1a;下图 1 中的 B、C 列均为文本格式&#xff0…

网络知识:整理各种路由器组网方法!网跨段也能访问

很多朋友问到&#xff0c;针对不同网段的两个电脑设备如何实现通信&#xff1f;这个通常在企业办公中会遇到&#xff0c;我们经常会遇到企业随着员工或部门的增多&#xff0c;增加了一个路由器&#xff0c;分了两个网段&#xff0c;A子网和B子网就处于不同网段&#xff0c;当网…

bootstrap.yml与application.properties区别?

1. bootstrap.yml先于application.properties被加载。 2. bootstrap.yml被Spring ApplicationContext的父类加载&#xff0c;这个类先于加载application.yml的ApplicatonContext启动。

hsv 明度的范围_色彩空间中的 HSL、HSV、HSB 有什么区别?

首先&#xff0c; HSB 和 HSV 是同一个东西&#xff0c;只是名称不同&#xff0c;本文后面仅使用 HSB&#xff0c;当提到它的时候&#xff0c;也代表 HSV。HSB 和 HSL 在字面意思上是一样的&#xff1a;H 指的是色相(Hue)&#xff0c;就是颜色名称&#xff0c;例如“红色”、“…

Java技术:serialVersionUID作用介绍

serialVersionUID概念介绍英文翻译的意思是序列化版本号。凡是实现Serializable接口的类都会有一个表示序列化版本标识符的静态变量。serialVersionUID的生成方式默认的1L&#xff1a;比如&#xff1a;private static final long serialVersionUID 1L; 。根据类名、接口名、成…

服务雪崩

假设存在如下调用链 而此时&#xff0c;Service A的流量波动很大&#xff0c;流量经常会突然性增加&#xff01;那么在这种情况下&#xff0c;就算Service A能扛得住请求&#xff0c;Service B和Service C未必能扛得住这突发的请求。 此时&#xff0c;如果Service C因为抗不住…

华为的型号命名规则_华为交换机s2700系列命名规则

华为交换机s2700系列命名规则华为交换机s2700系列命名规则上一篇我们聊到S2700系列机型的命名规则方法。基于要满足不同用户的市场需求&#xff0c;S2700系列提供了多款机型。咱们就以S2700-26TP-PWR-EI、S2710-52P-SI-AC、S2700-52P-EI-AC以及S2700-9TP-SI为模板来讲解S2700系…

电脑技巧:Win10操作系统关闭这几个功能,可以大幅度提升电脑的运行速度

目录 一、禁用Cortana语音助手 二、关闭onedrive自动同步服务 三、关闭微软自带的Windows Search服务 四、关闭windows自动更新 五、清理缓存文件 六、减少不必要开机启动项 今天小编给大家介绍一下Win10操作系统需要关闭的几个功能&#xff0c;能让你的电脑飞速运转&#xff0…

mysql换成oracle_从mysql转换到oracle数据库

最近做了几个项目&#xff0c;我对项目的要求(有些也是客户的要求)都是既要能用mysql数据库&#xff0c;又要能用oracle数据库&#xff0c;开发时尽量用mysql&#xff0c;等到发布时要求两者都能适应。因为两种数据库还是许多具体的应用有些不同&#xff0c;而我们开发中采用的…

硬件知识:视频分配器、画面分割器、矩阵、延长器相关知识介绍

目录 1、视频分配器 2、视频切换器 3、视频矩阵 4、画面分割器 5、延长器 你知道视频分配器&#xff0c;画面分割器&#xff0c;矩阵各自的作用都是什么吗&#xff1f;今天小编就为大家详细的介绍下它们各自的区别。 1、视频分配器 视频分配器是一种把一个源平均分配成多路视频…

UnityShader之Shader分类篇【Shader资料2】

关于ShaderLab&#xff0c;从我个人的理解上来看应该是分为三种类型。 1、Fixed function shader 固定渲染管线Shader&#xff0c;基于用于高级Shader在老显卡无法显示时的Fallback&#xff0c;使用的是ShaderLab语言&#xff0c;属于真正的ShaderLab语言&#xff0c;和我们平时…

mysql 交叉连接_MySQL教程77-CROSS JOIN 交叉连接

之间所讲的查询语句都是针对一个表的&#xff0c;但是在关系型数据库中&#xff0c;表与表之间是有联系的&#xff0c;所以在实际应用中&#xff0c;经常使用多表查询。多表查询就是同时查询两个或两个以上的表。在 MySQL 中&#xff0c;多表查询主要有交叉连接、内连接和外连接…

python web django base skill

web框架本质 socket 业务逻辑框架实现socket tonado node.js 使用WSGI实现socket django flask 自己实现框架思路 wsgiref socket 路由系统 自己写逻辑&#xff08;views&#xff09; jinja2 模板引擎(templates) 实现动态页面&#xff0c;修改返回给浏览器的字符串 去…

电脑常见的VGA、DVI、PS/2、USB等接口知识笔记

我们经常见到电脑和网络设备上都少不了VGA、DVI、PS/2、USB等常用接口&#xff0c;那些接口里面有多个针脚&#xff0c;他们每个针脚都有自己的用途&#xff0c;今天电脑学习小编就带大家一起看看这些接口神秘用途。 现在很多朋友们可能会遇到VGA线或HDMI线不够长&#xff0c;或…