JDBC操作步骤
数据库安装并配置完成之后,就可以按照以下的步骤进行数据库的操作了:
1、加载数据库驱动程序:各个数据库都会提供JDBC的驱动程序开发包,直接把JDBC操作所需要的开发包(一般为*.jar或*.zip)直接配置到classpath路径即可。
2、连接数据库:根据各个数据库的不同,连接的地址也不同,此连接地址将由数据库厂商提供,一般在使用JDBC连接数据库的时候都要求用户输入数据库连接的用户名和密码,本章使用的是mysql数据库,所以用户名为“root”,密码为“mysqladmin”,用户在取得连接之后才可以对数据库进行查询或更新的操作。
3、使用语句进行数据库操作:数据库操作分为更新和查询两种操作,除了可以使用标准的SQL语句之外,对于各个数据库也可以使用其自己提供的各种命令。
4、关闭数据库连接:数据库操作完毕之后需要关闭连接以释放资源。
配置MySQL数据库的驱动程序
如果现在要使用MySQL数据库进行开发,首先必须要先将MySQL数据库的驱动程序配置到classpath之中,直接修改本机的环境classpath属性即可,现在假定MySQL的数据库驱动程序保存在f:\test\mysql-connector-java-5.0.4-bin.jar路径之中。
MySQL驱动程序下载:
MySQL的驱动程序可以直接从MySQL的官方网站下载到,地址是:
http://dev.mysql.com/downloads/connector/
加载驱动程序
加载数据库驱动程序是JDBC操作的第一步,在之前已经将数据库的驱动程序直接配置到了classpath之中,所以,此时可以直接进行加载,不同数据库的驱动程序路径是不一样的,MySQL中的数据库驱动程序路径是:org.gjt.mm.mysql.Driver。
package org.lxh.demo17.connectdemo;
public class ConnectionDemo01 {
// 定义MySQL的数据库驱动程序
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
public static void main(String[] args) {
try {
Class.forName(DBDRIVER) ; // 加载驱动程序
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
连接及关闭数据库
数据库驱动程序可以正常加载的话,下面就可以连接数据库了,使用DriverManager类进行连接操作,DriverManager类中的常用方法如下
No. | 方法 | 类型 | 描述 |
1 | public static Connection getConnection(String url) throws SQLException | 普通 | 通过连接地址连接数据库 |
2 | public static Connection getConnection(String url,String user,String password) throws SQLException | 普通 | 通过连接地址连接数据库,同时输入用户名和密码 |
DriverManager说明
在DriverManager中,提供的主要操作就是得到一个数据库的连接,getConnection()方法就是取得连接对象,此方法返回的类型是Connection对象,不管使用那种方式连接,都必须提供一个数据库的连接地址,如果在连接数据库的时候需要用户名和密码,则还需要将用户名和密码设置上。
MySQL数据库的连接地址格式
jdbc:mysql://IP地址:端口号/数据库名称
数据库连接地址的形式
JDBC虽然提供了与平台无关的数据库操作,但是各个数据库的连接地址是有差异的,JDBC的连接地址实际上是由以下的三个部分组成:
jdbc协议:JDBC URL中的协议总是jdbc;
子协议:驱动程序名或数据库连接机制(这种机制可由一个或多个驱动程序支持)的名称,例如:mysql;
子名称:一种标识数据库的方法。必须遵循“//主机名:端口/子协议”的标准URL命名约定,例如://localhost:3306/mldn.
Connection
通过DriverManager取得Connection对象之后,实际上就表示数据库连接上了,连接上数据库之后就可以进行数据库的更新及查询操作,但是操作的最后数据库连接必须关闭。
Connection接口的常用方法
No. | 方法 | 类型 | 描述 |
1 | Statement createStatement() throws SQLException | 普通 | 创建一个Statement对象 |
2 | Statement createStatement(int resultSetType,int resultSetConcurrency) throws SQLException | 普通 | 创建一个 Statement 对象,该对象将生成具有给定类型和并发性的 ResultSet 对象。 |
3 | PreparedStatement prepareStatement(String sql) throws SQLException | 普通 | 创建一个PreparedStatement类型的对象 |
4 | PreparedStatement prepareStatement(String sql,int resultSetType,int resultSetConcurrency) throws SQLException | 普通 | 创建一个 PreparedStatement 对象,该对象将生成具有给定类型和并发性的 ResultSet 对象。 |
5 | CallableStatement prepareCall(String sql) throws SQLException | 普通 | 创建一个CallableStatement对象,此对象专门用于调用数据库的存储过程 |
6 | CallableStatement prepareCall(String sql,int resultSetType,int resultSetConcurrency) throws SQLException | 普通 | 建一个 CallableStatement 对象,该对象将生成具有给定类型和并发性的 ResultSet 对象 |
7 | DatabaseMetaData getMetaData() throws SQLException | 普通 | 得到数据库的元数据 |
8 | void setAutoCommit(boolean autoCommit) throws SQLException | 普通 | 设置数据库的自动提交,与事务有关 |
9 | boolean getAutoCommit() throws SQLException | 普通 | 判断数据库是否可以自动提交,与事务有关 |
10 | Savepoint setSavepoint() throws SQLException | 普通 | 设置数据库的恢复点,与事务有关 |
11 | Savepoint setSavepoint(String name) throws SQLException | 普通 | 为数据库的恢复点指定一个名字,与事务有关 |
12 | void rollback() throws SQLException | 普通 | 数据库操作回滚,与事务有关 |
13 | void rollback(Savepoint savepoint) throws SQLException | 普通 | 数据库回滚到指定的保存点,与事务有关 |
14 | void commit() throws SQLException | 普通 | 提交操作,与事务有关 |
15 | boolean isClosed() throws SQLException | 普通 | 判断连接是否已关闭 |
16 | void close() throws SQLException | 普通 | 关闭数据库 |
17 | DatabaseMetaData getMetaData() throws SQLException | 普通 | 得到数据库的元数据对象 |
连接数据库
package org.lxh.demo17.connectdemo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionDemo02 {
// 定义MySQL的数据库驱动程序
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
// 定义MySQL数据库的连接地址
public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
// MySQL数据库的连接用户名
public static final String DBUSER = "root" ;
// MySQL数据库的连接密码
public static final String DBPASS = "mysqladmin" ;
public static void main(String[] args) {
Connection conn = null ; // 数据库连接
Class.forName(DBDRIVER) ; // 加载驱动程序,有异常
// 连接MySQL数据库时,要写上连接的用户名和密码,有异常
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); // 有异常
System.out.println(conn) ;
conn.close() ; // 数据库关闭,有异常
}
}