Spring Boot Mysql 数据库操作示例

2025-05-29 0 95

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

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

pom.xml

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72
<?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</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:

?

1

2

3

4

5

6

7

8

9
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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45
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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30
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我们就可以对数据库进行一些基础操作了

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

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167
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 数据库操作示例

Spring Boot Mysql 数据库操作示例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

原文链接:http://blog.csdn.net/u010399316/article/details/53420532

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Spring Boot Mysql 数据库操作示例 https://www.kuaiidc.com/118574.html

相关文章

发表评论
暂无评论