spring boot操作mysql数据库:自动建表,数据添加、查询和修改
1 mysql自动建表
(1)首先使用IntelliJ IDEA新建spring boot工程,然后在pom.xml中加入mysql的依赖:
<!-- MYSQL --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- Spring Boot JPA --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency>
(2)在application.properties中添加:
server.port=8080# Hibernate 相关配置## 方言
#hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
## 显示Sql
hibernate.show_sql=true
## 自动建表方式
#hibernate.hbm2ddl.auto= update## 数据库连接
spring.datasource.url=jdbc:mysql://localhost:3306/test## 用户名
spring.datasource.username=root## 密码
spring.datasource.password=123456## 数据库驱动
spring.datasource.driver-class-name=com.mysql.jdbc.Driver## 建表方式
spring.jpa.properties.hibernate.hbm2ddl.auto=update# 方言
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
关键的地方在建表方式设置上,只有写了这句才会自动建表:
## 建表方式
spring.jpa.properties.hibernate.hbm2ddl.auto=update
spring.jpa.properties.hibernate.hbm2ddl.auto
有几种配置:
create
:每次加载Hibernate时都会删除上一次生成的表,然后重新生成新表,即使两次没有任何修改也会这样执行,这就导致每次启动都是一个新的数据库,也是导致数据丢失的重要原因。create-drop
:每次加载Hibernate时都会生成表,但当SessionFactory关闭时,所生成的表将自动删除。update
:最常用的属性值,第一次加载Hibernate时创建数据表(前提是需要先有数据库),以后加载HIbernate时只会根据model更新,即使model已经删除了某些属性,数据表也不会随之删除字段。validate
:每次加载Hibernate时都会验证数据表结构,只会和已经存在的数据表进行比较,根据model修改表结构,但不会创建新表。
(3)添加Student.java类
package com.example.demo;import javax.persistence.*;@Entity
@Table(name = "student")
public class Student {//自增ID@Id@GeneratedValue(strategy = GenerationType.AUTO)private Integer id;@Column(name = "name")private String name;@Column(name="age")private Integer age;//需要声明无参数的构造函数public Student(){ }public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}
}
在IDEA中运行项目,将会看到在test数据库中生成了student数据表。
2 操作student数据表
新建一个接口StudentRepository,让它继承jpa:
package com.example.demo;import org.springframework.data.jpa.repository.JpaRepository;public interface StudentRepository extends JpaRepository<Student,Integer> {
}
新建控制器StudentController.java,用来与浏览器交互:
package com.example.demo;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;
import java.util.List;@RestController
@RequestMapping("/student")
public class StudentController {@Autowiredprivate StudentRepository studentRepository;private static int cnt = 0;@RequestMapping("queryAll")@ResponseBodypublic List<Student> queryAll(){List<Student> list = new ArrayList<Student>();list = studentRepository.findAll();return list;}@RequestMapping("add")@ResponseBodypublic void add(){Student user = new Student();user.setName("junjun"+(cnt++));user.setAge(6);studentRepository.save(user);}@RequestMapping("update")@ResponseBodypublic void update(){Student user = studentRepository.findById(1).get();user.setName("duoduo");studentRepository.save(user);}}
IDEA中运行项目,浏览器中打开http://localhost:8080/student/queryAll,可以看到此时没有数据
打开http://localhost:8080/student/add,然后再查询http://localhost:8080/student/queryAll,显示:
访问http://localhost:8080/student/update进行修改,再查询发现数据修改了:
spring boot操作mysql数据库:自动建表,数据添加、查询和修改相关推荐
- mysql表索引类型修改_MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法总结...
本文实例讲述了MySQL常用的建表.添加字段.修改字段.添加索引SQL语句写法.分享给大家供大家参考,具体如下: 建表: DROP TABLE IF EXISTS bulletin; CREATE T ...
- Python Web开发框架之Django篇——二、Django连接MySQL数据库以及建表的操作
二.Django连接MySQL数据库以及建表的操作 准备工作:安装Python访问MySQL的模块 一.修改project同名目录下面的__init__.py文件 二.修改project同名目录下面的 ...
- java代码内创建mysql索引_点评阿里JAVA手册之MySQL数据库 (建表规约、索引规约、SQL语句、ORM映射)...
下载原版阿里JAVA开发手册 [阿里巴巴Java开发手册v1.2.0] 本文主要是对照阿里开发手册,注释自己在工作中运用情况. 本文内容:MySQL数据库 (建表规约.索引规约.SQL语句.ORM映 ...
- spring boot整合MySQL数据库
spring boot整合MySQL数据库 spring boot整合MySQL数据库可以说很简单,只需要添加MySQL依赖和在配置文件中添加数据库配置信息,利用spring-boot-starter ...
- php导出数据库的指定表数据,MYSQL教程mysql数据库导出指定表数据的方法
<MYSQL教程mysql数据库导出指定表数据的方法>要点: 本文介绍了MYSQL教程mysql数据库导出指定表数据的方法,希望对您有用.如果有疑问,可以联系我们. 导读:linux下导出 ...
- flowable适配达梦数据库自动建表失败的问题
问题描述: 最近在用flowable6.4.2适配国产达梦数据库启动项目建表失败的问题. 最近公司项目要适配国产达梦数据库,因为以前适配过一次,这次信息满满觉得没啥问题,所以启动项目,发现报错了,提示 ...
- JPA在MySQL中自动建表
为什么80%的码农都做不了架构师?>>> JPA(Java Persistence API)是Spring Boot访问关系型数据库的一个标准接口,它使用ORM(Object- ...
- quartz各版本MySQL数据库存储建表SQL语句
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 用quartz管理任务计划很方便,但是当使用数据库作为存储介质的时候,必须要先创建表,不然就会报错. ...
- 【Python】Python 2 和 Python 3 操作 MySQL 数据库实现创建表、删除表、增删改查操作
1.MySQL数据库和表的编码格式 (1)创建数据库并指定字符集 mysql> create database testpythondb character set utf8; Query OK ...
最新文章
- java中Error与Exception有什么区别
- easyui dialog 中嵌入html页面
- js jquery关闭当前窗口
- 动态生成的DOM做点击事件无效
- java中类型的相互转化_Java中的数据类型及相互转换方法
- c# 前导0_C#| 用前导零填充整数
- opencv python教程简书_OpenCV-Python系列二:常用的图像属性
- android 全局dp单位,android应用开发之View的大小计量单位(px、dpi、dp、dip、sp)
- 100个最古老互联网域名 最久只有23年(附名单)
- Go语言常用的并发模式(上)
- leetcode—8.同向双指针—滑动窗口题型python解答
- “终端服务临时客户端许可证过期”的解决方法
- GB35114---基于openssl加密库进行开发(二)
- java电信面试问题及答案_大唐电信java笔试题及答案
- AI自动写报告,原来如此简单
- 摩托罗拉Android 7寸,3.7寸屏600MHz处理器 摩托罗拉MT710评测
- 程序媛的芳华,女神节快乐!
- OpenCV Error:Insufficient memory(Failed to allocate 1244164 bytes)
- 出现make: *** No rule to make target `all'. Stop.解决办法
- oracle 中触发器的作用是什么,oracle创建触发器及作用举例