在JAVA项目中使用JDBC十分枯燥,各种SQL,各种串表,而且后期难以维护,所以出现了ORM框架,比如:Hibernate。
ORM的出现让开发者无需过多操心SQL语句,无需担心各种不同关系型数据库的配置,可以通过Bean直接映射DB里面的table进行操作。
-========================================================
以下介绍Spring Boot中加入JPA依赖对mysql数据库进行操作:首先,我们要有个数据库,在数据库里建一个表。
CREATE TABLE `cimuser` (
`userid` int(11) NOT NULL,
`usrname` varchar(45) DEFAULT NULL,
`password` varchar(45) NOT NULL,
PRIMARY KEY (`userid`),
UNIQUE KEY `userid_UNIQUE` (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
在表中插入一条数据:
INSERT INTO `oms_db`.`cimuser` (`userid`, `password`,`username`)
VALUES ('thisid', '123', 'Lonzie');
========================================================
数据库准备就绪,现在来配置项目:
在项目配置Maven配置文件中加入 JPA依赖包 & Mysql驱动包
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
在application.yml文件中配置需要连接的数据库(我这里连接的schema为oms_db)
#mysql
spring:
datasource:
url: jdbc:mysql://localhost:3306/oms_db?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
jpa:
hibernate:
ddl-auto: none
show-sql: true
ddl-auto有以下几种配置:
none:啥都不干
create:启动的时候先删除再创建
create-drop:没有就创建,在系统关闭前执行一下删除
update:最常用的设置,第一次调用JPA,对比类和表的结构,以类为准,更新到DB中
validate:每次调用都会对比类和表的结构(具体有啥用还不知道。。。每次对比都很累。。。)
show-sql: true表示在JPA调用DB时,会在控制台显示执行的SQL语句(当然是自动生成的)
============================================================
一切准备就绪,开始敲java代码:
创建一个类(Bean),对应DB里面的一个table:
@Entity
@Table(name="cimuser")
public class cimuser {
@Id
@Column(nullable = false)
private String userid;
@Column(nullable = false)
private String username;
@Column(nullable = false)
private String password;
public cimuser() { }
/*省略getter & setter*/
}
对应table建一个接口,实现一些对数据库的操作方法:
//继承JpaRepository,cimuser表示对于的类,String代表主键数据类型
public interface cimuserR extends JpaRepository<cimuser,String> {
/*通过userid查询一个cimuser出来
* 若查询出来的数据不止一行,可以用List<cimuser>来装查出来的数据*/
cimuser findByUserid(String userid);
}
接口有了,就像我们有了一把数据库的钥匙,要用数据库的时候,用钥匙去打开,拿出自己想要的东西
在Spring Boot项目中建一个controller,实现一个Get方法:
@RestController
public class MainController {
//依赖注入,可以直接把接口拿开用,很强大有木有
@Autowired
cimuserR uers;
@GetMapping("/test")
public cimuser say(){
//查询 where uerid='thisid'
return uers.findByUserid("thisid");
}
}
(很想吐槽一句:万物皆对象,对象都是Bean)
大工搞成! 启动项目,用postman测试一下。
闪亮的json里面有自己想在DB挖的数据,很激动的说。
多做几个接口,咱前后端就分离了。
当然这仅仅是入门皮毛,想要进一步学习还需进军官方文档:
http://projects.spring.io/spring-data-jpa/