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表中的记录并储存,浏览器界面如下图:

0cc57a361b3f0b277cd2d0deaad0e779.png

在浏览器中输入网址localhost:8080/demo/all,即可刚看我们我们插入到MySQL中的记录(JSON格式):

8ceb60999c865923b65e2203514bc4e8.png

最后我们去MySQL中查看数据是否插入成功,结果如下图所示:

95dd4eafd47c5593aec16529f8ab4110.png

结束语

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值