JDBC编码六步走

JDBC介绍

Java Database Connectivity(简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口

JDBC的本质

JDBC是SUN公司制定的一套连接数据库的接口(interface)。而接口都有调用者(程序员)和实现者(各大数据库厂商),这些面向接口调用。面向接口写实现类的操作,都属于面向接口编程思想。

面向接口编程是一种非常受益的思想,java的多态机制就是个典型范例(面向抽象编程)。

第一步:注册驱动

作用是告知java程序即将要连接的数据库厂商品牌(MySQL、Oracle、SQLserver)。

第二步:获取连接

打开JVM进程与数据库进程之间的通道,属于进程间通信,重量级。

第三步:获取数据库操作对象

专门执行SQL语句的对象。

第四步:执行SQL语句(DQL、DML)

第五步:处理查询结果

只有当第四步执行的是select语句时,才会处理查询后的结果集。

第六步:释放资源

使用完毕,一定要及时关闭连接。

数据驱动jar包,各种mysql-connector-java版本下载地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java

注意:mysql8和mysql5的导入包路径不同。
mysql5:com.mysql.jdbc.Driver
mysql8:com.mysql.cj.jdbc.Driver

我这里用的是mysql-connector-java-8.0.22.jar,下面IDEA演示操作:

1、添加jar包至library库中。

我事先在项目中创建了名为jdbc_test模块。

(1)选择File-》Project Structure

(2)选择Libraries-》点击‘+’号-》Java

 (3)选择下载好的mysql驱动,点击OK

 (4)选择jdbc_test模块,点击OK

最后别忘了Apply和OK,这样成功添加进来了。

 

2、连接代码测试示例:

public class JDBCTest01 {
    public static void main(String[] args) throws SQLException {
        Connection conn = null;
        Statement stmt = null;
        // 1、注册驱动
        Driver driver = new com.mysql.cj.jdbc.Driver();
        DriverManager.registerDriver(driver);
        // 2、获取连接
        String url = "jdbc:mysql://127.0.0.1:3306/bookstore?serverTimezone=UTC";
        String user = "root";
        String password = "xxx"; // 自己的数据库密码
        conn = DriverManager.getConnection(url, user, password);
        System.out.println("数据库连接对象:" + conn);
//        com.mysql.cj.jdbc.ConnectionImpl@3dd3bcd

        // 3、获取数据库操作对象
        // Statement createStatement() 创建一个 Statement 对象来将 SQL 语句发送到数据库。
        stmt = conn.createStatement();

        // 4、执行sql语句
        // int executeUpdate(String sql)
        // 专门执行DML语句,返回值是“影响数据库中的记录条数”
//        int count = stmt.executeUpdate("update dept set dname = '销售部',loc = '合肥' where deptno = 20;");
        int count = stmt.executeUpdate("update users set username= 'mike' where id=13;");
        System.out.println(count == 1 ? "保存成功":"保存失败");

        // 5、处理查询结果集

        // 6、释放资源
        // 从小到大,从后往前依次关闭
        try	{
            stmt.close();
        }
        catch (SQLException e) {
            e.printStackTrace();
        }
        if(conn != null) {
            try	{
                conn.close();
            }
            catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

 如果启动报时区错误的话,在你连接数据库的url后加上参数 ?serverTimezone=UTC。

3、执行结果:

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值