JDBC操纵数据库的步骤(以SQLServer为例)

本文详细介绍了Java数据库连接(JDBC)的概念、关键步骤和代码实现,包括加载驱动、连接数据库、执行SQL语句、处理结果集及关闭数据库的操作。通过实例化驱动、连接数据库、创建语句对象并执行SQL查询来展示如何从Java应用程序中访问数据库。重点突出了异常处理和资源管理的重要性,确保程序的稳定性和资源的有效利用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JDBC的简介

         JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,操作不同的数据库需要使用不同的JDBC。

JDBC编程步骤

一、Load the Driver  加载JDBC驱动程序

         DriverManager管理一组JDBC驱动程序的基本服务。可以想象成一个管家,通过注册DriverManager可以拿到跟数据库的一根链接。

          首先新建一个项目,过程不再赘述。右击项目->Build Path -> Add External Archives。然后选择sqljdbc4.jar

         然后实例化SQLServerDriver,打开jar包你会发现它的路径是com.microsoft.sqlserver.jdbc.SQLServerDriver。实例化有两种方法:

    1、使用Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 

           Class 与class不同,Class是一个类

     2、 new com.microsoft.sqlserver.jdbc.SQLServerDriver();

      两种方法都差不多,没啥区别,看个人爱好了。

 二、连接数据库

   Connection conn = DriverManager.getConnection(, ,  ,);

    getConnection有三个参数。

          第一个参数是数据库的连接字符串,这个需要根据实际情况的不同而有所不同。

          第二个是用户名

          第三个是密码

三、Execute the SQL 执行数据库语句

        执行数据库语句前要创建一个语句对象。Statement

        Statement stmt = conn.createStatement();                                    

  四、处理得到的结果集

           ResultSet rs = stmt.executeQuery("select * from dept");     

         返回来的结果集rs,指针指向第一条数据的前面,所以需要先next一下。

         while( rs.next()){

                 rs.getString();

                 rs.getInt();

                    ……

           }


五、关闭数据库

            原则上,后打开的先关闭

           ResultSet.close

           Statement.close

           Connection.close

下面是完整代码:

import java.sql.*;
public class JTest{

	public static void main(String[] args) throws Exception{
		String JDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
		String connectDB="jdbc:sqlserver://ABYSS-PC\\MYABYSS:64160;DatabaseName=master";
		//实例化驱动
		Class.forName(JDriver);
		String user ="sa";
		String possword = "";
		//连接数据库
		Connection conn = DriverManager.getConnection(connectDB, user, possword);
		//创建语句对象
		Statement stmt = conn.createStatement();
		//执行select语句
		ResultSet rs =  stmt.executeQuery("Select * from dept");
		//循环获取结果集
		 while( rs.next()){
			 System.out.println(rs.getString("deptno"));
			 System.out.println(rs.getInt("deptno"));
		 }
		 //关闭数据库,遵循后打开先关闭的原则。
		 rs.close();
		 stmt.close();
		 conn.close();
	}
}
JDBC编程大致就这么些步骤,不过以上的代码太不专业了,而且有点问题。实例化驱动、连接数据库、创建语句对象等代码都会抛出异常,假若在程序运行的过程中出现异常而导致程序终止,后面的关闭数据库的语句不会被执行,而且被申请的内存不会被释放,长此以往会导致资源的耗尽。因此这里需要将throws 改为try/catch。

import java.sql.*;
public class JText {

	public static void main(String[] args) {
		String JDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
		String connectDB="jdbc:sqlserver://ABYSS-PC\\MYABYSS:64160;DatabaseName=master";
		String user ="sa";
		String possword = "";
		Connection conn = null;
		Statement stmt = null;
		ResultSet  rs = null;
		try {
			//实例化驱动
			Class.forName(JDriver);
			//连接数据库
			conn = DriverManager.getConnection(connectDB, user, possword);
			//创建语句对象
			 stmt = conn.createStatement();
			//执行select语句
			 rs =  stmt.executeQuery("Select * from dept");
			//循环获取结果集
			 while( rs.next()){
				 System.out.println(rs.getString("deptno"));
				 System.out.println(rs.getInt("deptno"));
			 }
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally{
			try{
				 //关闭数据库,遵循后打开先关闭的原则。
				if(rs != null){      //在关闭之前,判断一下是否为空
					rs.close();
					rs =null;     //关闭之后 释放资源,这是一个很好的习惯
				}
				 if (stmt != null){
					 stmt.close();
					 stmt = null;
				 }
				 if (conn != null){
					 conn.close();
					 conn =null;
				 }
			}catch (SQLException e){
				e.printStackTrace();
			}
			
		}
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值