博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot入门(2)使用MySQL数据库
阅读量:7240 次
发布时间:2019-06-29

本文共 6401 字,大约阅读时间需要 21 分钟。

介绍

  本文将介绍如何在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_examplemysql> create user 'springuser'@'localhost' identified by 'pwd123'; -- 创建新用户springuser,密码为pwd123mysql> grant all on db_example.* to 'springuser'@'localhost'; -- 给予springuser用户对db_example数据库的所有操作权限

Spring Boot程序

Step1. 创建项目spring_mysql, 以及项目布局:

mkdir spring_mysqlcd ./spring_mysqltouch build.gradlemkdir -p src/main/javamkdir -p src/main/resourcesmkdir -p src/test/javamkdir -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.8targetCompatibility = 1.8dependencies {    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=createspring.datasource.url=jdbc:mysql://localhost:3306/db_examplespring.datasource.username=springuserspring.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 classpublic 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, Deletepublic 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;@SpringBootApplicationpublic class Application {
public static void main(String[] args) { SpringApplication.run(Application.class, args); }}

这是该Spring Boot项目的主要程序入口。

Step5 创建可执行jar包

cd spring_mysqlgradle 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.comlocalhost:8080/demo/add?name=Jclian&email=github@sina.comlocalhost:8080/demo/add?name=Bob&email=bob@google.comlocalhost:8080/demo/add?name=Cook&email=cook@apple.comlocalhost:8080/demo/add?name=Mark&email=mark@west.com

上述程序将会name和email参数的值解析成数据库中user表中的记录并储存,浏览器界面如下图:

储存数据
在浏览器中输入网址localhost:8080/demo/all,即可刚看我们我们插入到MySQL中的记录(JSON格式):
网页中查看数据
最后我们去MySQL中查看数据是否插入成功,结果如下图所示:
MySQL中查看数据

结束语

  本文将介绍如何使用Spring Data JPA和Hibernate来连接、处理MySQL数据库。

  本次分享到此结束,接下来还会继续更新Spring Boot方面的内容,欢迎大家交流~~

你可能感兴趣的文章
squid的简单介绍、配置
查看>>
【产品介绍】“弹性裸金属服务器”到底有那些特性?
查看>>
动静内容混合站点,怎样用全站加速支持实际业务场景?
查看>>
linux中grub文件丢失或者错误解决方法
查看>>
Nginx基本配置与应用
查看>>
153. Find Minimum in Rotated Sorted Array-LeetCode
查看>>
vCenter报警vmware常见日志记录服务健康状况
查看>>
Libgdx画面FPS性能优化经验
查看>>
Java的时间、日期类
查看>>
如何防止无线WIFI网络泄密
查看>>
Java学习笔记3-操作符
查看>>
MySQL索引 使用笔记
查看>>
Button或者ImageButton的背景设为透明或者半透明
查看>>
IOS闪屏制作——程序启动动画
查看>>
vim的安装和使用
查看>>
我的友情链接
查看>>
2018年下载中心1月第四周资源下载TOP榜
查看>>
Version svn, Manager
查看>>
zabbix的web安装
查看>>
CentOS7使用ssh不能登录,报错:Read from socket failed: Connection reset by peer
查看>>