Spring Boot - JPA操作数据库

在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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值