使用JDBC编程的步骤是怎样的?

传智教育-一样的教育,不一样的品质

通常情况下,JDBC的使用可以按照以下几个步骤进行:

(1) 加载数据库驱动

加载数据库驱动通常使用Class类的静态方法forName()来实现,具体实现方式如下:

Class.forName("DriverName");

在上述代码中,DriverName就是数据库驱动类所对应的字符串。例如,要加载MySQL数据库的驱动可以采用如下代码:

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

加载Oracle数据库的驱动可以采用如下代码:

Class.forName("oracle.jdbc.driver.OracleDriver");

从上面两种加载数据库驱动的代码可以看出,在加载驱动时所加载的并不是真正使用数据库的驱动类,而是数据库驱动类名的字符串。

(2) 通过DriverManager获取数据库连接

DriverManager中提供了一个getConnection()方法来获取数据库连接,获取方式如下:

Connection conn = DriverManager.getConnection(String url, 
String user, String pwd);

从上述代码可以看出,getConnection()方法中有3个参数,它们分别表示连接数据库的URL、登录数据库的用户名和密码。其中用户名和密码通常由数据库管理员设置,而连接数据库的URL则遵循一定的写法。以MySQL数据库为例,其地址的书写格式如下:

jdbc:mysql://hostname:port/databasename

上面代码中,jdbc:mysql:是固定的写法,mysql指的是MySQL数据库。hostname指的是主机的名称(如果数据库在本机上,hostname可以为localhost或127.0.0.1,如果在其他机器上,那么hostname为所要连接机器的IP地址),port指的是连接数据库的端口号(MySQL端口号默认为3306),databasename指的是MySQL中相应数据库的名称。

(3) 通过Connection对象获取Statement对象

Connection创建Statement的方式有如下三种:

● createStatement():创建基本的Statement对象。

● prepareStatement(String sql):根据传递的SQL语句创建PreparedStatement对象。

● prepareCall(String sql):根据传入的SQL语句创建CallableStatement对象。

以创建基本的Statement对象为例,其创建方式如下:

Statement stmt = conn.createStatement();

(4) 使用Statement执行SQL语句

所有的Statement都有如下三种执行SQL语句的方法:

● execute(String sql):用于执行任意的SQL语句。

● executeQuery(String sql):用于执行查询语句,返回一个ResultSet结果集对象。

● executeUpdate(String sql):主要用于执行DML(数据操作语言)和DDL(数据定义语言)语句。执行DML语句(INSERT、UPDATE或DELETE)时,会返回受SQL语句影响的行数,执行DDL(CREATE、ALTER)语句返回0。

以executeQuery()方法为例,其使用方式如下:

// 执行SQL语句,获取结果集ResultSet
ResultSet rs = stmt.executeQuery(sql);

(5) 操作ResultSet结果集

如果执行的SQL语句是查询语句,执行结果将返回一个ResultSet对象,该对象里保存了SQL语句查询的结果。程序可以通过操作该ResultSet对象来取出查询结果。

(6) 关闭连接,释放资源

每次操作数据库结束后都要关闭数据库连接,释放资源,以重复利用资源。需要注意的是,通常资源的关闭顺序与打开顺序相反,顺序是ResultSet、Statement(或PreparedStatement)和Connection。为了保证在异常情况下也能关闭资源,需要在try…catch的finally代码块中统一关闭资源。

至此,JDBC程序的大致实现步骤已经讲解完成。

JDBC是什么?jdbc常用API有哪些?

数据库连接池、Spring JDBC和HTML

如何实现JDK动态代理?案例演示JDK动态代理实现过程

什么是AOP?AOP有哪些优点?

传智教育java 开发培训

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/253862.html

(0)
上一篇 2022年5月9日
下一篇 2022年5月9日

相关推荐

发表回复

登录后才能评论