Spring Boot Mysql 数据库操作示例

本文默认你的开发环境.数据库已经安装好

想用使用数据库.我们需要现在pom文件中添加相应的依赖

pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.imgod</groupId>

<artifactId>testjpa</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>war</packaging>

<name>TestJpa</name>

<description>Demo project for Spring Boot" title="Spring Boot">Spring Boot</description>

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>1.4.2.RELEASE</version>

<relativePath /> <!-- lookup parent from repository -->

</parent>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<java.version>1.8</java.version>

</properties>

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-jpa</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-tomcat</artifactId>

<scope>provided</scope>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-jdbc</artifactId>

</dependency>

<!-- 添加Hibernate依赖 -->

<dependency>

<groupId>org.hibernate</groupId>

<artifactId>hibernate-core</artifactId>

</dependency>

</dependencies>

<build>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

</build>

</project>

我们的配置文件进行数据库的配置

application.properties:

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test

spring.datasource.username=root

spring.datasource.password=imgod1

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.datasource.max-idle=10

spring.datasource.max-wait=10000

spring.datasource.min-idle=5

spring.datasource.initial-size=5

spring.jpa.properties.hibernate.hbm2ddl.auto=update

前面配置的是数据库信息,最后一行配置的是.如果我们定义的实体在数据库中没有对应的表的话.会帮我们自动创建

我们的实体类型

User.Java

package com.imgod.bean;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import javax.persistence.Table;

import javax.validation.constraints.NotNull;

@Entity

@Table(name = "users")

public class User {

@Id

@GeneratedValue(strategy = GenerationType.AUTO)

private int id;

@NotNull

private String email;

@NotNull

private String name;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

对应数据库中的user表,没有的话会自动创建

想对数据库进行操作,我们需要创建一个接口继承CrudRepository

UserDao.java

package com.imgod.dao;

import org.springframework.data.domain.Pageable;

import org.springframework.data.repository.CrudRepository;

import org.springframework.stereotype.Repository;

import org.springframework.transaction.annotation.Transactional;

import com.imgod.bean.User;

import java.lang.String;

import java.util.List;

@Transactional

@Repository

public interface UserDao extends CrudRepository<User, Integer> {

//jpa 方法名就是查询语句,只要规法写方法名一切就都可以完成(当然.有时候会造成方法名又臭又长)

User findByEmail(String email);//根据邮箱查询

List<User> findByName(String name);//根据用户名查询

//select * from test.users where email='imgod@qq.com' and name='imgod';

List<User> findByNameAndEmail(String name,String email);//根据用户名和邮箱进行查询

//select * from test.users where email='imgod@qq.com' and name='imgod4444' order by id desc;

List<User> findByNameAndEmailOrderByIdDesc(String name,String email);//根据用户名和邮箱进行查询,排序

//select * from test.users where email='imgod@qq.com' and name='imgod4444' order by id desc limit 2;

List<User> findTop2ByNameAndEmailOrderByIdDesc(String name,String email);//根据用户名和邮箱进行查询,排序,前两个

//根据邮箱进行分页查询

List<User> findByEmail(String email,Pageable pageable);//根据用户名和邮箱进行查询

}

实现CrudRepository我们就可以对数据库进行一些基础操作了

如果我们想要实现更多的操作.需要自己按照严格的命名规则为方法定义方法名

下面就是我们重要的控制器的实现了:

package com.imgod.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.domain.PageRequest;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import com.imgod.bean.User;

import com.imgod.dao.UserDao;

@RestController

public class UserController {

@Autowired

private UserDao userDao;

/**

* 根据邮件去查找

*

* @param email

* @return

*/

@RequestMapping(value = "/findUserByEmail")

public Object getUserByEmail(String email) {

System.out.println("email:" + email);

User user = userDao.findByEmail(email);

if (null == user) {

return "暂无数据";

} else {

return user;

}

}

/**

* 获取所有的用户信息

*

* @return

*/

@RequestMapping(value = "/getall")

public Object getAllUser() {

List<User> list = (List<User>) userDao.findAll();

if (null == list || list.size() == 0) {

return "暂无数据";

} else {

return list;

}

}

/**

* 删除指定id用户

*

* @param id

* @return

*/

@RequestMapping(value = "/deleteUser")

public Object deleteuUser(int id) {

User user = userDao.findOne(id);

if (null == user) {

return "删除用户失败:" + id + "没找到该用户";

} else {

userDao.delete(id);

return "删除用户成功:" + id;

}

}

/**

* 添加用户

*

* @param id

* @param email

* @param name

* @return

*/

@RequestMapping(value = "/adduser")

public Object addUser(String id, String email, String name) {

System.out.println("email:" + email);

int tempId = Integer.parseInt(id);

System.out.println("tempId:" + tempId + "email:" + email + "name:" + name);

User tempUser = userDao.findOne(tempId);

if (null == tempUser) {

tempUser = new User();

tempUser.setId(tempId);

}

tempUser.setEmail(email);

tempUser.setName(name);

User resultUser = userDao.save(tempUser);

if (null == resultUser) {

return "新增用户失败";

} else {

return "新增用户:" + resultUser.getName();

}

}

// 条件查询

/**

* 获取姓名和邮箱是指定内容的用户

*

* @return

*/

@RequestMapping(value = "/getUser1")

public Object getUser(String email, String name) {

List<User> userList = userDao.findByNameAndEmail(name, email);

if (null != userList && userList.size() != 0) {

return userList;

} else {

return "没找到符合要求的用户";

}

}

/**

* 获取姓名和邮箱是指定内容的用户并排序

*

* @return

*/

@RequestMapping(value = "/getUser2")

public Object getUser2(String email, String name) {

List<User> userList = userDao.findByNameAndEmailOrderByIdDesc(name, email);

if (null != userList && userList.size() != 0) {

return userList;

} else {

return "没找到符合要求的用户";

}

}

/**

* 获取姓名和邮箱是指定内容的用户并排序,前两个

*

* @return

*/

@RequestMapping(value = "/getUser3")

public Object getUser3(String email, String name) {

List<User> userList = userDao.findTop2ByNameAndEmailOrderByIdDesc(name, email);

if (null != userList && userList.size() != 0) {

return userList;

} else {

return "没找到符合要求的用户";

}

}

/**

* 分页获取邮箱为指定内容的数据

*

* @return

*/

@RequestMapping(value = "/getUser4")

public Object getUser4(String email, int page) {

// page 属于下标 从0开始 0代表是第一页

List<User> userList = userDao.findByEmail(email, new PageRequest(page, 2));

if (null != userList && userList.size() != 0) {

return userList;

} else {

return "没找到符合要求的用户";

}

}

}

如此我们就完成了对数据库的操作:

以上是 Spring Boot Mysql 数据库操作示例 的全部内容, 来源链接: utcz.com/p/213368.html

回到顶部