这篇文章介绍SpringBoot+Hibernate+MySQL实现数据操作,要实现这一部分功能首先得安装数据库MysQL。然后通过接口访问浏览器增删改查。
一、MySQL下载和安装
下载地址:
https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.21-macos10.15-x86_64.dmg
注意以下内容,选择第二个单选框,设置密码。账户名称:root
安装完毕后, 进入系统偏好设置,如果里面有MySQL说明已经安装成功。点击MySQL,开启MySQL服务。
这样数据库就启动了,接下来就可以操作数据库了。
二、数据库的连接和创建
1、创建数据库
- 选择ideal intelij右上角Batabase;
- 点击+,选择Schema;
- Name输入框输入数据库名称。
完成一上操作,数据库即可完成数据库创建。
2、连接数据库
点击Test Connnection出现下图,则说明连接成功了。
3、创建数据库表
找到刚刚选择的数据库,右键,选择+New,点击Table,创建数据表:
创建数据库表各个字段:
这样数据库和表就创建完成,后面直接使用框架连接就行。
三、环境配置
1、gradle配置
打开gradle,在dependencies中配置:
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'mysql:mysql-connector-java'
dependencies {
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
implementation 'org.springframework.boot:spring-boot-starter-web'
//这thymeleaf包一定要放在最后,否则更改端口不生效,不知道啥原因
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'mysql:mysql-connector-java'
}
2、application.properties配置
#端口号
server.port=8888
#MySQL
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/kartwang?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456789
#hibernate配置
#数据库类别
spring.jpa.database=mysql
#输出日志
spring.jpa.show-sql=true
#数据库没有会新建,内容不会清空
hibernate.hbm2ddl.auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
四、操作数据库
包结构如下:
1、实体类User
@Entity:加了@Entity注解, Spring框架会得知这个类是一个Entity, Hibernate会把这个类映射到数据库中的关系表, 这个关系表的列与User的所有属性一一对应。
@Id @GeneratedValue(strategy=GenerationType.IDENTITY):id由数据库生成,传递参数时候可以不使用。
@Entity // This tells Hibernate to make a table out of this class
public class User {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)//id由数据库生成,传递参数时候可以不使用
private Integer id;
private String name;
private String email;
public Integer getId() {
return 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;
}
}
2、UserRepository
新建一个接口命名为UserRepository,让该接口继承CrudRepository接口,以持久化对象User作为CrudRepository的第一个类型参数,表示当前所操作的持久化对象类型,Integer作为CrudRepository的第二个类型参数,用于指定ID类型。
public interface UserRepository extends CrudRepository<User, Integer> {
User findByEmail(String email);
void deleteByEmail(String email);
}
什么注解也不用加,Spring会自动扫描该类,通过依赖注入对象找到该实例对象。
3、控制器类UserController
@RestController
public class UserController {
//依赖注入对象
@Autowired
private UserRepository userRepository;
@GetMapping(path = "/all")
public @ResponseBody
Iterable<User> getAllUsers() {
return userRepository.findAll();
}
@GetMapping(path = "/add")
public User addUser(String email){
User user = new User();
user.setEmail(email);
user.setName("太漏了");
User save = userRepository.save(user);
return save;
}
}
通过以上三步骤,就完成了数据库的访问,下面看看效果:
访问:http://localhost:8888/add?email=8900000@qq.com