JAVA的JDBC操作(以mysql为例)

前言

在使用java的过程中我们避免不了对数据库的访问,也就是增删改查(curd)

一、什么是JDBC?

        百度解释:JDBC的全称是Java数据库连接(Java Database connect),它是一套用于执行SQL语句的Java API。应用程序可通过这套API连接到关系数据库,并使用SQL语句来完成对数据库中数据的查询、更新和删除等操作。

        JDBC是Java规定的一套接口(API),由各个数据库厂商负责实现,避免了换数据库驱动导致的不同操作带来的麻烦。

二、使用步骤

1.下载jdbc驱动

有以下两种方式

       1)下载jar包

        网址如下MySQL :: Download Connector/Jicon-default.png?t=N7T8https://dev.mysql.com/downloads/connector/j/5.1.html        下载后进行如下操作,方可使用

        2)maven 导入

        建maven工程后在pom.xml下加入以下语句导入依赖

<dependencies>
       
        <!--  添加MySQL驱动器的依赖  -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.21</version>
        </dependency>
        
    </dependencies>

然后刷新让maven下载就行(注意maven下载地址,可以看我的另外一篇文章)

2.开始写代码

 jdbc的操作一遍有6步:

        1.引入驱动

        2.获取连接

        3.获取数据库操作对象

        4.数据库操作

        5.处理结果集

        6.释放资源

下面开始详细讲解,继续代码可目录跳到后面

1)注册驱动及获取连接

     1、原始方法
        Driver driver= new Driver();
        String url="jdbc:mysql://localhost:3306/****?serverTimezone=UTC";
        Properties properties=new Properties();

        properties.setProperty("user","root");
        properties.setProperty("password","*****");
        DriverManager.registerDriver(driver);
        Connection connect = DriverManager.getConnection(url, properties);

        非常原始(?后面的是指定时区,不然可能出现问题)

      2、反射机制注册驱动(最常用的注册驱动方法)
        Class.forName("com.mysql.cj.jdbc.Driver");
        String url="jdbc:mysql://localhost:3306/yb12211?serverTimezone=UTC";
        Connection connection= DriverManager.getConnection(url,"root","556712555");
      

大家可以看到是直接使用DriverManager()少了Driver()的注册,这是因为Driver类中有以下静态代码块,反射加载类的时候执行

 实际上,一定版本以上JDBC Class.forName()句也可以省略,因为jar包内已有

2)获取操作对象以及操作数据库

Statement statement = connect.createStatement();

获取操作对象 statement 但需要注意的是statement存在sql注入的问题,所以一般使用prepareStatement

解决sql注入

        String sql="select * from ... where ...=? and ...=?"
        PreparedStatemment prepareStatemment= connection.prepareStatemment(sql);
        prepareStatemment.setString(para_index,str);
        ResultSet resultSet = statement.executeQuery();

Connection connection=DriverManager.getConnection(url,"root","***");
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery("select * from class");
        while (resultSet.next()) {
            int class_id = resultSet.getInt("class_id");//也可以getInt(1)代表第一列
            String class_name = resultSet.getString("class_name");
            System.out.println(class_name+class_id);
        }

 3)回收资源

connection.close();


        resultSet.close();
        statement.close();
        connection.close();


总结

以上就是我对jdbc的一些拙见,如有错误,请大家斧正,本人还写了进阶版的jdbc博客欢迎大家观看。

样例代码

public void connect03() throws SQLException, ClassNotFoundException {
        //Class.forName("com.mysql.cj.jdbc.Driver");
        String url="jdbc:mysql://localhost:3306/*****?serverTimezone=UTC";
        Connection connection= DriverManager.getConnection(url,"root","****");
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery("select * from class");
        while (resultSet.next()) {
            int class_id = resultSet.getInt("class_id");
            String class_name = resultSet.getString("class_name");
            System.out.println(class_name +" "+ class_id);
        }
    }

  • 33
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值