Spring Boot Mysql 数据库操作示例

网友投稿 338 2023-06-08


Spring Boot Mysql 数据库操作示例

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

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

pom.xml

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

4.0.0

com.imgod

testjpa

0.0.1-SNAPSHOT

war

TestJpa

Demo project for Spring Boot

org.springframework.boot

spring-boot-starter-parent

1.4.2.RELEASE

UTF-8

UTF-8

1.8

org.springframework.boot

spring-boot-starter-data-jpa

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-tomcat

provided

org.springframework.boot

spring-boot-starter-test

test

mysql

mysql-connector-java

org.springframework.boot

spring-boot-starter-jdbc

org.hibernate

hibernate-core

org.springframework.boot

spring-boot-maven-plugin

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

4.0.0

com.imgod

testjpa

0.0.1-SNAPSHOT

war

TestJpa

Demo project for Spring Boot

org.springframework.boot

spring-boot-starter-parent

1.4.2.RELEASE

UTF-8

UTF-8

1.8

org.springframework.boot

spring-boot-starter-data-jpa

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-tomcat

provided

org.springframework.boot

spring-boot-starter-test

test

mysql

mysql-connector-java

org.springframework.boot

spring-boot-starter-jdbc

org.hibernate

hibernate-core

org.springframework.boot

spring-boot-maven-plugin

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

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 {

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

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

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

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

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

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

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

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

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

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

List 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() {

Lhttp://ist list = (List) 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

* @retljmwNfswturn

*/

@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 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 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 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 userList = userDao.findByEmail(email, new PageRequest(page, 2));

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

return userList;

} else {

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

}

}

}

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何将应用的log4j替换成logback详解
下一篇:Java集合List与Array的相互转换
相关文章

 发表评论

暂时没有评论,来抢沙发吧~