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数据库:自动建表,数据添加、查询和修改相关推荐

  1. mysql表索引类型修改_MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法总结...

    本文实例讲述了MySQL常用的建表.添加字段.修改字段.添加索引SQL语句写法.分享给大家供大家参考,具体如下: 建表: DROP TABLE IF EXISTS bulletin; CREATE T ...

  2. Python Web开发框架之Django篇——二、Django连接MySQL数据库以及建表的操作

    二.Django连接MySQL数据库以及建表的操作 准备工作:安装Python访问MySQL的模块 一.修改project同名目录下面的__init__.py文件 二.修改project同名目录下面的 ...

  3. java代码内创建mysql索引_点评阿里JAVA手册之MySQL数据库 (建表规约、索引规约、SQL语句、ORM映射)...

    下载原版阿里JAVA开发手册  [阿里巴巴Java开发手册v1.2.0] 本文主要是对照阿里开发手册,注释自己在工作中运用情况. 本文内容:MySQL数据库 (建表规约.索引规约.SQL语句.ORM映 ...

  4. spring boot整合MySQL数据库

    spring boot整合MySQL数据库 spring boot整合MySQL数据库可以说很简单,只需要添加MySQL依赖和在配置文件中添加数据库配置信息,利用spring-boot-starter ...

  5. php导出数据库的指定表数据,MYSQL教程mysql数据库导出指定表数据的方法

    <MYSQL教程mysql数据库导出指定表数据的方法>要点: 本文介绍了MYSQL教程mysql数据库导出指定表数据的方法,希望对您有用.如果有疑问,可以联系我们. 导读:linux下导出 ...

  6. flowable适配达梦数据库自动建表失败的问题

    问题描述: 最近在用flowable6.4.2适配国产达梦数据库启动项目建表失败的问题. 最近公司项目要适配国产达梦数据库,因为以前适配过一次,这次信息满满觉得没啥问题,所以启动项目,发现报错了,提示 ...

  7. JPA在MySQL中自动建表

    为什么80%的码农都做不了架构师?>>>    JPA(Java Persistence API)是Spring Boot访问关系型数据库的一个标准接口,它使用ORM(Object- ...

  8. quartz各版本MySQL数据库存储建表SQL语句

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 用quartz管理任务计划很方便,但是当使用数据库作为存储介质的时候,必须要先创建表,不然就会报错. ...

  9. 【Python】Python 2 和 Python 3 操作 MySQL 数据库实现创建表、删除表、增删改查操作

    1.MySQL数据库和表的编码格式 (1)创建数据库并指定字符集 mysql> create database testpythondb character set utf8; Query OK ...

最新文章

  1. java中Error与Exception有什么区别
  2. easyui dialog 中嵌入html页面
  3. js jquery关闭当前窗口
  4. 动态生成的DOM做点击事件无效
  5. java中类型的相互转化_Java中的数据类型及相互转换方法
  6. c# 前导0_C#| 用前导零填充整数
  7. opencv python教程简书_OpenCV-Python系列二:常用的图像属性
  8. android 全局dp单位,android应用开发之View的大小计量单位(px、dpi、dp、dip、sp)
  9. 100个最古老互联网域名 最久只有23年(附名单)
  10. Go语言常用的并发模式(上)
  11. leetcode—8.同向双指针—滑动窗口题型python解答
  12. “终端服务临时客户端许可证过期”的解决方法
  13. GB35114---基于openssl加密库进行开发(二)
  14. java电信面试问题及答案_大唐电信java笔试题及答案
  15. AI自动写报告,原来如此简单
  16. 摩托罗拉Android 7寸,3.7寸屏600MHz处理器 摩托罗拉MT710评测
  17. 程序媛的芳华,女神节快乐!
  18. OpenCV Error:Insufficient memory(Failed to allocate 1244164 bytes)
  19. 出现make: *** No rule to make target `all'. Stop.解决办法
  20. oracle 中触发器的作用是什么,oracle创建触发器及作用举例

热门文章

  1. 认识代码审计,流程、方式、范围等一篇了解
  2. html如何引入css文件?HTML引入外部css文件的四种方法
  3. uploadifive不用flash上传图片插件,基于h5和jQuery上传图片插件
  4. 岑溪洁净实验室设计布局规划总结
  5. 情商高就是说话让人舒服
  6. python 保留两位有效数字
  7. 移动互联网用户体验指数MUI
  8. 一个像素占多大内存 多少字节
  9. StrictMode使用
  10. 如何用python抢火车票_Python3实现抢火车票功能(上)