欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SpringBoot整合JDBC的实现

程序员文章站 2023-08-19 08:43:14
简介jdbc是最原基本的连接数据源的方式,在springboot中所有和数据源有关系的都在spring data家族中,所以我们看看springboot中如何使用jdbc来实现对数据库的增删改查操作。...

简介

jdbc是最原基本的连接数据源的方式,在springboot中所有和数据源有关系的都在spring data家族中,所以我们看看springboot中如何使用jdbc来实现对数据库的增删改查操作。

简单使用

引入依赖

这里我们只引入基本的依赖就好,创建一个springboot项目(这里版本是2.1.6),然后添加以下依赖:

  <dependencies>
    <!--jdbc-->
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-jdbc</artifactid>
    </dependency>

    <!--mysql驱动-->
    <dependency>
      <groupid>mysql</groupid>
      <artifactid>mysql-connector-java</artifactid>
      <scope>runtimen</scope>
    </dependency>

    <!--web-->
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-web</artifactid>
    </dependency>

    <!--test-->
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-test</artifactid>
    </dependency>

    <dependency>
      <groupid>org.projectlombok</groupid>
      <artifactid>lombok</artifactid>
    </dependency>
  </dependencies>

编写配置文件

这里我们需要把数据库的基本连接信息配置好

spring:
 datasource:
  driver-class-name: com.mysql.cj.jdbc.driver
  ## 这里如果不配置时区可能会报错,所以配置时区:servertimezone=ut
  url: jdbc:mysql://localhost:3306/study_springboot?servertimezone=utc&useunicode=true&characterencoding=utf-8
  username: root
  password: root

编写测试类

@runwith(springrunner.class)
@springboottest
public class basetest {

  @autowired
  private datasource datasource;


  @test
  public void load(){
    // 打印出:class com.zaxxer.hikari.hikaridatasource
    system.out.println(datasource.getclass());
  }
}

实现增删改查

spring boot中有很多的xxxtemplate,也就是给我们默认配置了 很多的模板,方便我们进行开发,比如上面测试中的 jdbctemplate,spring boot已经给我们封装好方法了,我们只要调用就好,下面是增删改查的案例:

@restcontroller
public class testcontroller {


  @autowired
  private jdbctemplate jdbctemplate;

  @getmapping("/userlist")
  public list<map<string, object>> getuserlist(){
    string sql = "select * from study_springboot.user";
    list<map<string, object>> maps = jdbctemplate.queryforlist(sql);
    return maps;
  }
  @getmapping("/adduser")
  public string adduser(){

    string sql = "insert into study_springboot.user(id, name, password) values('1', 'zhangsan', 'qqqq')";
    jdbctemplate.update(sql);

    return "add success";
  }

  /**
   * 可以通过占位符实现入参
   * @param id
   * @return
   */
  @getmapping("/updateuser/{id}")
  public string updateuser(@pathvariable("id") int id){
    string sql = "update study_springboot.user set name =?, password = ? where id = "+id;

    // 封装占位符
    object[] objects = new object[2];
    objects[0] = "李四";
    objects[1] = "pppppp";

    jdbctemplate.update(sql, objects);
    return "update success";
  }

  @getmapping("/deleteuser/{id}")
  public string deleteuser(@pathvariable("id") int id){
    string sql = "delete from study_springboot.user where id = ?";
    // int 类型也是一个object,所以这样传参也是可以的
    jdbctemplate.update(sql, id);

    return "delete success";
  }

}

上面的案例只是展示基本的操作,但是真实项目中是不会这样写的,一般还是整合mybatis或者jpa来实现操作数据源。

到此这篇关于springboot整合jdbc的实现的文章就介绍到这了,更多相关springboot整合jdbc内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!