springboot整合原生jdbc和原生sql进行数据库操作

其实想写jdbc这篇文章很久了,可能还是跟自己的兴趣有关系吧,自己本打算分享其它技术点,可是由于其它都需要数据库做下铺垫,这就是这篇文章出现在你面前的原因之一吧,后面这些时间,自己打算还是按照数据库这部分先输出几篇文章,其它技术点的输出文章打算后面有时间慢慢输出吧。

说点题外话,昨天和同学一块吃完饭聊了很久,我们聊到了找工作,如何面试的问题,简历如何去写等等问题,聊了很长时间,或许你们看过我的文章的都应该发现自己没有一篇是关于教你如何面试的,之所以暂时不去写面试还是与公众号开通的最初原因有关系,自己觉得文章输出是自己的思考一方面,帮助到需要帮助的就可以了。

确实输出文章帮助了自己很多,无论工作上还是生活上,它引导了我思考的方式的不同,写到这突然想到大学几年的生活改变了自己很多,周围人的影响都或重或轻的影响到自己,这也是自己比较感恩的事情,感谢着遇到的每一个人,到这自己的题外话就说到这了,接下来我们看下如何使用jdbc进行操作数据库的吧。

以往的风格我们是按照示例程序开始的,下面我们看下我们这个很容易理解的示例程序都需要什么?首先自己使用的工具是idea,java版本使用的是1.8,好了,我们看下自己项目的pom文件内容。



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.2.1.RELEASE
         
    
    com.wpw
    springboot-jdbc
    0.0.1-SNAPSHOT
    springboot-jdbc
    Demo project for Spring Boot


    
        1.8
    


    
        
            org.springframework.boot
            spring-boot-starter-web
        


        
            mysql
            mysql-connector-java
            runtime
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
            
                
                    org.junit.vintage
                    junit-vintage-engine
                
            
        
        
            org.projectlombok
            lombok
            1.18.8
        
    


    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    





上面的pom文件的jar包依赖主要是web包的依赖和操作数据库jar包的依赖。

由于这个示例程序是自己比较想写的,所以内容风格不一定规范,非规范了一些,自己是在自己的服务器上基于docker容器化方式进行mysql数据库服务搭建的,需要了解如何搭建的,可以看下之前的文章,好了,我们看下我们的示例程序吧。

首先,我们创建了一个实体类,里面的属性字段和我们创建的数据库字段保持一致。

package com.wpw.springbootjdbc;


import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;


import java.io.Serializable;
@Data
@Builder
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
public class Student implements Serializable {
    private Integer id;
    private String name;
}


是不是很简洁明了,是自己使用了第三方的库lombok,对lombok不了解的可以看下历史信息,里面有一篇文章对其进行了使用讲解。解放了你自动生成get/set方法的双手。

下面的示例程序就是自己简单的写了对数据库的增删改查操作,比较容易理解。

package com.wpw.springbootjdbc;


import lombok.Cleanup;
import lombok.extern.slf4j.Slf4j;


import java.sql.*;
import java.util.Optional;


@Slf4j
public class MYSQLUtil {
    private static void execute() throws ClassNotFoundException, SQLException {
        Class.forName("com.mysql.cj.jdbc.Driver");
        @Cleanup Connection connection = DriverManager.getConnection("jdbc:mysql://自己mysql数据库服务地址:3306/test", "root", "123456");
        @Cleanup PreparedStatement preparedStatement = connection.prepareStatement("select * from stu");
        @Cleanup ResultSet resultSet = preparedStatement.executeQuery();
        Student student = null;
        while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            student = new Student().setId(id).setName(name);
        }
        boolean present = Optional.ofNullable(student).isPresent();
        if (present) {
            System.out.println(student);
        } else {
            System.out.println("查询内容为空");
        }
    }


    private static void insert() throws ClassNotFoundException, SQLException {
        Class.forName("com.mysql.cj.jdbc.Driver");
        @Cleanup Connection connection = DriverManager.getConnection("jdbc:mysql://自己mysql数据库服务地址:3306/test", "root", "123456");
        @Cleanup PreparedStatement preparedStatement = connection.prepareStatement("insert into stu values(?,?)");
        preparedStatement.setInt(1, 4);
        preparedStatement.setString(2, "backCoder4");
        boolean flag = preparedStatement.execute();
        String message = !flag ? "成功插入一条数据" : "保存数据失败";
        log.info("message:{}", message);
    }


    private static void delete() throws ClassNotFoundException, SQLException {
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection connection = DriverManager.getConnection("jdbc:mysql://自己mysql数据库服务地址:3306/test", "root", "123456");
        PreparedStatement preparedStatement = connection.prepareStatement("delete from stu where id =?");
        preparedStatement.setInt(1, 4);
        int count = preparedStatement.executeUpdate();
        String message = count > 0 ? "删除数据库的数据成功" : "删除数据库的数据失败";
        log.info("message:{}", message);
    }
  private static  void update() throws ClassNotFoundException, SQLException {
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection connection = DriverManager.getConnection("jdbc:mysql://自己mysql数据库服务地址:3306/test", "root", "123456");
        PreparedStatement preparedStatement = connection.prepareStatement("update stu set name =? where id= ?");
        preparedStatement.setString(1,"backCoder-Coder");
        preparedStatement.setInt(2,1);
        int count = preparedStatement.executeUpdate();
        String message=count>0?"更新数据库数据成功":"更新数据库数据失败";
        log.info("message:{}",message);
    }
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
//        execute();
//        insert();
        delete();
    }
}


上面的示例程序还是比较容易理解的,希望可以帮助到你,这篇文章就到这里结束了,喜欢文章写作风格或者文章内容的可以关注,在看,转发,分享一下。

你可能感兴趣的:(springboot整合原生jdbc和原生sql进行数据库操作)