JDBC 链接

 

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

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

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


加载JDBC驱动程序

在打开与数据库的JDBC链接以前,您须要作的第一件事是加载数据库的JDBC驱动程序。如今已经不须要程序员作这些事啦,由于从Java 6开始,Java 已经内置这步操做。程序员

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

语法:数据库

1
Class.forName( "driverClassName" );

加载MySQL数据库:ide

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

打开JDBC链接

能够经过调用java.sql.DriverManager类方法getConnection()打开JDBC Connection。 这种方法有三种花样。学习

使用URL打开链接

第一种方法仅将数据库的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。spa

使用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();
相关文章
相关标签/搜索