springbooot mysql_Spring Boot入门(2)使用MySQL数据库
介绍
本文将介绍如何在Spring项目中连接、处理MySQL数据库。
该项目使用Spring Data JPA和Hibernate来连接、处理MySQL数据库,当然,这仅仅是其中一种方式,你也可以使用Spring JDBC或者MyBatis.
Spring Data JPA是Spring Data的一个子项目,主要用于简化数据访问层的实现,使用Spring Data JPA可以轻松实现增删改查、分页、排序等。Spring Data拥有很多子项目,除了Spring Data JPA外,还有如下子项目:
Spring Data Commons
Spring Data MongoDB
Spring Data Redis
Spring Data Solr
Spring Data Gemfire
Spring Data REST
Spring Data Neo4j
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的ORM框架,Hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
本文将介绍如何使用Spring Data JPA和Hibernate来连接、处理MySQL数据库。
准备
首先我们需要对MySQL做一些准备处理。我们将要在MySQL中创建db_example数据库,并创建springuser用户,拥有对db_example数据库的所有操作权限。打开MySQL , 输入以下命令:
mysql> create database db_example; -- 创建新数据库db_example
mysql> create user 'springuser'@'localhost' identified by 'pwd123'; -- 创建新用户springuser,密码为pwd123
mysql> grant all on db_example.* to 'springuser'@'localhost'; -- 给予springuser用户对db_example数据库的所有操作权限
Spring Boot程序
Step1. 创建项目spring_mysql, 以及项目布局:
mkdir spring_mysql
cd ./spring_mysql
touch build.gradle
mkdir -p src/main/java
mkdir -p src/main/resources
mkdir -p src/test/java
mkdir -p src/test/resources
Step2 编写build.gradle
build.gradle代码如下:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.0.RELEASE")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
bootJar {
baseName = 'gs-accessing-data-mysql'
version = '0.1.0'
}
repositories {
mavenCentral()
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
// JPA Data (We are going to use Repositories, Entities, Hibernate, etc...)
compile 'org.springframework.boot:spring-boot-starter-data-jpa'
// Use MySQL Connector-J
compile 'mysql:mysql-connector-java'
testCompile('org.springframework.boot:spring-boot-starter-test')
}
在上述Spring Boot项目中,主要使用spring-boot-starter-web ,spring-boot-starter-data-jpa和mysql:mysql-connector-java来实现在Web端操作MySQL .
Step3 配置属性文件
新建src/main/resources/application.properties文件,配置相关属性,代码如下:
spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:mysql://localhost:3306/db_example
spring.datasource.username=springuser
spring.datasource.password=pwd123
在上述代码中,主要的数据库操作为新建(create),因为数据库中实现不存在相应的表格。使用MySQL的localhost服务器的3306端口的db_example数据库,并设置用户名和密码。
Step4 编写Java文件
创建src/main/java/hello文件夹(package),在该文件夹下新建User.java,Hibernate会将该entity类自动转化成数据库中的表格。User.java的完整代码如下:
package hello;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity // This tells Hibernate to make a table out of this class
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
private String name;
private String email;
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 String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
在上述文件夹中新建UserRepository.java,其代码如下:
package hello;
import org.springframework.data.repository.CrudRepository;
import hello.User;
// This will be AUTO IMPLEMENTED by Spring into a Bean called userRepository
// CRUD refers Create, Read, Update, Delete
public interface UserRepository extends CrudRepository {
}
这是repository接口, 它将会被Spring中的bean中自动执行。
在上述文件夹中新建MainController.java,代码如下:
package hello;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import hello.User;
import hello.UserRepository;
@Controller // This means that this class is a Controller
@RequestMapping(path="/demo") // This means URL's start with /demo (after Application path)
public class MainController {
@Autowired // This means to get the bean called userRepository
// Which is auto-generated by Spring, we will use it to handle the data
private UserRepository userRepository;
@GetMapping(path="/add") // Map ONLY GET Requests
public @ResponseBody String addNewUser (@RequestParam String name
, @RequestParam String email) {
// @ResponseBody means the returned String is the response, not a view name
// @RequestParam means it is a parameter from the GET or POST request
User n = new User();
n.setName(name);
n.setEmail(email);
userRepository.save(n);
return "Saved";
}
@GetMapping(path="/all")
public @ResponseBody Iterable getAllUsers() {
// This returns a JSON or XML with the users
return userRepository.findAll();
}
}
这是Spring应用的新控制器(Controller)。
在上述文件夹中新建Application.java,代码如下:
package hello;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
这是该Spring Boot项目的主要程序入口。
Step5 创建可执行jar包
cd spring_mysql
gradle build
执行完毕后,会在build/libs文件夹下生成gs-accessing-data-mysql-0.1.0.jar .
运行及测试
使用以下命令启动该Spring Boot项目
java -jar build/libs/gs-accessing-data-mysql-0.1.0.jar
在浏览器端测试,输入以下网址:
localhost:8080/demo/add?name=Alex&email=alex@baidu.com
localhost:8080/demo/add?name=Jclian&email=github@sina.com
localhost:8080/demo/add?name=Bob&email=bob@google.com
localhost:8080/demo/add?name=Cook&email=cook@apple.com
localhost:8080/demo/add?name=Mark&email=mark@west.com
上述程序将会name和email参数的值解析成数据库中user表中的记录并储存,浏览器界面如下图:
在浏览器中输入网址localhost:8080/demo/all,即可刚看我们我们插入到MySQL中的记录(JSON格式):
最后我们去MySQL中查看数据是否插入成功,结果如下图所示:
结束语
本文将介绍如何使用Spring Data JPA和Hibernate来连接、处理MySQL数据库。
本次分享到此结束,接下来还会继续更新Spring Boot方面的内容,欢迎大家交流~~
springbooot mysql_Spring Boot入门(2)使用MySQL数据库相关推荐
- jpa mysql_Spring boot通过JPA访问MySQL数据库
本文展示如何通过JPA访问MySQL数据库. JPA全称Java Persistence API,即Java持久化API,它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据 ...
- Golang 入门系列(十) mysql数据库的使用
之前,已经讲过一些Golang的基础的东西,感兴趣的可以看看以前的文章,https://www.cnblogs.com/zhangweizhong/category/1275863.html, 今天简 ...
- python接口自动化测试书籍_skPython接口自动化测试 自动化测试教程书籍 用Python实现UI自动化测试 轻松入门Python语法 MySQL数据库 Python基础教程书籍...
1 本书整体设计思想 . 1 1.1 为什么要做懂技术的测试人员 . 2 1.2 为什么选择这本书. 4 1.3 为什么选择Python 5 1.4 本书能给你带来什么 . 6 1.5 自动化代码的设 ...
- mysql数据应用从入门_《MySQL数据库应用从入门到精通》
第1章 数据库概述 1.1基本概念 1.1.1数据库技术发展阶段 人工管理阶段-->文件系统阶段-->数据库系统阶段 1.1.2涉及的概念 数据库(DB).数据库管理系统(DBMS).数据 ...
- 1. 请简述mysql数据库的锁机制_【MySQL入门】之MySQL数据库的锁机制(二)
上篇文章主要聊了全局锁和表锁,并详细分析MDL锁的作用以及可能带来的问题.今天我们主要来聊一聊Innodb存储引擎的行锁.MySQL的行锁是在引擎层由引擎自己实现的,并不是所有的引擎都支持行锁,MyI ...
- boot连接不上mysql数据库_【springboot连接 MYSQL数据库出问题_springboot】 | IT修真院·坑乎...
Spring: datebase: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/spring-c ...
- linux同步两台mysql数据,Mysql入门MySQL 数据库两台主机同步实战(linux)
<Mysql入门MySQL 数据库两台主机同步实战(linux)>要点: 本文介绍了Mysql入门MySQL 数据库两台主机同步实战(linux),希望对您有用.如果有疑问,可以联系我们. ...
- 使用php从网络访问mysql数据库,使用PHP从web访问mysql数据库
一. web数据库构架的工作原理 1. 用户由浏览器发出HTTP请求,请求特定的web页面. 2. web服务器接受接收到对特定页面的请求,检索相应文件,并将其传递给php引擎处理. 3. php引擎 ...
- 使用python连接mysql数据库
系列文章目录 第一章 Python 机器学习入门之连接mysql数据库 文章目录 系列文章目录 前言 一.使用步骤 1.安装 2.上代码 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随 ...
最新文章
- C++对象赋值的四种方式
- zabbix监控windows主机
- Win7硬盘安装方法
- Android项目中Bluetooth类如何写
- [linux命令技巧] mkdir -p
- Sql Server函数全解二数学函数
- 输出质数(java)
- snipaste安装和使用_snipaste替代品 amp; linux截图解决方案-截图、贴图工具Flameshot...
- 带有书签的Android WebView
- ft2232驱动安装方法_win7系统无法安装打印机驱动程序的解决方法
- Linux系统(三)vi、vim编辑器和shell编程
- Android Studio 红米3 一直运行或者debug不成功,提示 Failed to establish session 解决方案
- Visio有用的画图技巧
- 【报告分享】休闲游戏商业化发行指南-穿山甲(附下载)
- 【我的OpenGL学习进阶之旅】学习OpenGL ES 3.0 的实战 Awsome Demo (中)
- android系统性能优化工具,十条Android系统优化技巧, 让手机更流畅
- 我收藏的一些RSS订阅频道
- 计算机主机地址填什么,什么是IP地址 何设置IP地址
- 工单系统(源代码)PHP语言开发 开发者版
- flex 随机数产生方法