• JDBC 连接


    转载至:https://www.liyongzhen.com/

    在这一小节,我们将学习DriverManager对象和connection对象。

    DriverManager对象用于从驱动里获取一个connection对象。

    而connection对象功能颇多,可管理连接、管理事务、建立语句对象等。


    加载JDBC驱动程序

    在打开与数据库的JDBC连接之前,您需要做的第一件事是加载数据库的JDBC驱动程序。现在已经不需要程序员做这些事啦,因为从Java 6开始,Java 已经内置这步操作。

    Java之前是这样加载JDBC驱动程:

    语法:

    1
    Class.forName("driverClassName");

    加载MySQL数据库:

    1
    Class.forName("com.mysql.jdbc.Driver");

    打开JDBC连接

    可以通过调用java.sql.DriverManager类方法getConnection()打开JDBC Connection。 这种方法有三种花样。

    使用URL打开连接

    第一种方法仅将数据库的URL作为参数。

    1
    2
    3
    String url = "jdbc:mysql://127.0.0.1:3306/dbname";
    Connection connection =
        DriverManager.getConnection(url);

    url是数据库的URL。不同的数据库url值不一样,上面是MySQL数据库的URL。

    使用URL,用户名和密码打开连接

    第二种方法将数据库的URL,用户名和密码作为参数。

    1
    2
    3
    4
    5
    String url = "jdbc:mysql://127.0.0.1:3306/dbname";
    String user = "root";
    String password = "123456";
    Connection connection =
        DriverManager.getConnection(url,user,password);

    user和password参数是数据库的用户名和密码。

    使用URL和Properties对象打开连接

    第三种方法是将数据库URL和Properties对象作为参数

    1
    2
    3
    4
    5
    6
    String url = "jdbc:mysql://127.0.0.1:3306/dbname";
    Properties properties = new Properties( );
    properties.put( "user", "root" );
    properties.put( "password", "123456" );
    Connection connection =
        DriverManager.getConnection(url, properties);

     Properties对象用于在打开连接时传递数据库所需的特殊属性。    


    关闭JDBC连接

    当JDBC操作完成(执行完查询、删除、修改)后,应关闭它。

    关闭连接有两种花样。

    普通的close方法

    这是通过调用Connection.close()方法完成的,如下所示:

    1
    connection.close();

    数据库连接占用了一定数量的资源,因此关闭JDBC连接非常重要。

    通过Try-With-Resources关闭连接

    可以通过Java 7中添加的Java Try-with-resources自动关闭JDBC Connection 。下面的示例演示那如何使用Try-with-resources关闭连接:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    String url = "jdbc:mysql://127.0.0.1:3306/dbname";
    String user = "root";
    String password = "123456";
     
    try(Connection connection =
        DriverManager.getConnection(url, user, password)) {
     
        //其它业务代码
    }

    Connection在try块的括号内打开。

    在try语句块中,可以像往常一样使用数据库连接。

    一旦执行退出try块,Connection将自动关闭。

    这样就不会忘记自己关闭Connection。


    事务

    事务的概念是:所有的操作要么同时成功,要么同时失败。

    在JDBC里执行事务需要两步:先开户事务,再提交事务。如果事务失败,就产生事务回滚(所有的操作都捎回)。

    在JDBC里有两种方式执行事务:一是自动执行,二是手动执行。

    自动执行事务

    Connection默认是自动提交事务,也可以手动开户自动提交事务。

    1
    connection.setAutoCommit(true);

    手动执行事务

    Connection setAutoCommit()方法,当参杂是false时,是手动提交事务。

    在手动提交模式,则必须通过调用Connection commit()方法显式提交每个数据库事务。

    1
    2
    3
    4
    5
    connection.setAutoCommit(false);
     
    // 其它业务代码
     
    connection.commit();

    回滚

    如果事务执行失败时,就会触发回滚操作,所有的操作都取消。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    try{
        connection.setAutoCommit(false); //开启手动提交事务
     
        // 其它业务代码
     
        connection.commit();
    } catch (SQLException e) {// 产生异常
        connection.rollback();  // 事务回滚
    }

    建立语句

    Connection 可建立Statement对象和PreparedStatement对象。

    Statement对象

    Statement对象可用于对数据库执行SQL更新 ,或对数据库执行SQL查询 。

    1
    Statement statement =connection.createStatement();

    PreparedStatement对象

    PreparedStatement对象,叫预处理对象,PreparedStatement对象可以对数据库执行SQL更新,或对数据库执行SQL查询。

    1
    PreparedStatement pre = connection.prepareStatement(sql);

    元数据对象

    Connection 对象可以获取DatabaseMetaData对象,DatabaseMetaData对象可以获取数据库的相关信息,比如:表、主键、列、索引等。

    1
    DatabaseMetaData metaData = connection.getMetaData();
  • 相关阅读:
    索引
    排序---冒泡排序、快速排序、选择排序、插入排序、希尔排序
    设计模式6大原则
    InputStream的read()读取机制
    Java中的关键字---native
    Java中的关键字---static
    Java中的关键字---transient
    负载均理解
    2020-03-29 微服务网关GateWay
    2020-03-28 微服务网关Zuul
  • 原文地址:https://www.cnblogs.com/max-hou/p/10701841.html
Copyright © 2020-2023  润新知