JAVA JDBC数据库开发

本文详细介绍了基于JDBC的数据库应用开发方法,包括加载驱动程序、建立数据库连接、执行SQL语句、处理结果集及关闭数据库等关键步骤。通过示例代码展示了如何在Java中使用JDBC进行数据库操作。

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

基于JDBC的数据库应用开发方法

开发步骤:

建立与数据库的连接
执行SQL语句
处理结果集
关闭数据库

一.加载驱动程序

一. 加载JDBC驱动程序 JDBC的驱动管理器查找到相应的数据库驱动程序并加载。加载的方式有两种。

1.  从系统地属性java.sql中读取Driver的类名,并一一注册            

  2.  在程序中使用Class.forName()方法动态装载并注册数据库驱动

注:第二种驱动程序的加载方法比较常用。
使用java.lang.Class.forName()方法。
例如:如果要加载和注册JDBC-ODBC桥驱动,使用如下语句:
        Class.forName(“sun.jdbc.odbc.OdbcDriver”);

二. 建立数据库连接

这个步骤中要使数据库驱动连接到相应的DBMS。连接的建立通过使用Driver.Manager类的static方法getConnection(),
定义如下:
public static Connection getConnection(String url,String user,String password)
其中参数如下:
url是数据库连接串,指定使用的数据库访问协议以及数据源,其一般格式为:
jdbc:<subprotocol>:<subname>
例如使用JDBC-ODBC桥,数据源的名称是wombat,则url应为: jdbc:odbc:wombat
user和password是建立的用户名和口令。
例如:String url = "jdbc:mysql://localhost:3306/notebook";
String user = "root";
String password = "majintao";

Connection con = DriverManager.getConnection(url,user,password);

三.  执行SQL语句

在所建立的数据库连接上,创建 Statement 对象,将各
SQL 语句发送到所连接的数据库执行。
对于已创建的数据库连接对象,调用 createStatement()方法,便可以得到一个 Statement 对象,其格式为:
 public Statement createStatement()throws SQLException;
接下来就可以通过该Statement对象发送SQL语句。对于SQL的检索操作,使用Statement的ExecuteQuery()方法,对于更行操作,使用ExecuteUpdate()方法。

四.处理结果集

结果集是保存 SQL 的 SELECT 语句的返回结果记录的表,是 ResultSet 类的对象。在结果集中通过游标控制具体的记录的访问,游标指向结果集中的当前记录。
在定位到结果集中的一行后,就可以执行数据的读取。这对于不同的 SQL 数据类型要使用不同的读取方法,以实现 SQL 数据类型与Java数据类型的转换。具体是根据 SQL 数据类型的不同,使用相应的 getXXX() 方法后去每个列的值。对于各种数据类型的数据的获取方法getXXX() ,JDBC 提供两种形式:
一种是以列名为参数,格式为getXXX(String colName)
例如:

ResultSet resultSet=stmt.executeQuery(“select a, b,c From Table”);
while(rs.next){
int x=rs.getInt(“a”);
Strign s =rs.getString(“b”);
Float f = getFloat(“c”);


}
另一种是以结果集中列的序号作为参数
 例如:
while (rs.next()){
int x = rs.getInt(1);
String s = rs.getString(2);
float f = getFloat(3);
}

五.关闭数据库

在数据库所有操作都完成后,要显式地关闭连接。一般在关闭链接二十先释放Statement对象,
例如,
Connection con = DriverManager.getConnection(jdbc:odbc: wombat,”Fernanda”,”J8”)
Statement stmt = con.createStatement(); …
stmt.close( ); con.close( );
因为一个数据库连接开销很大,所以只有当多有的数据库操作都完成时,才关闭连接。重复使用已有的连接时一种很重要的性能优化

示例代码

import java.sql.*;

public class JdbcTest{
	public static void main(String args[]){
		String url="jdbc:odbc:stu";
		Connection con;
		String sql;
		Statement stmt;
		String num,name,sex;
		int age,math,eng,spec;
	
		try{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		}catch(java.lang.ClassNotFoundException e){
			System.err.print("ClassNotFoundException:");
			System.err.println(e.getMessage());
		}
try{
			con=DriverManager.getConnection(url,"java","java");
			stmt=con.createStatement();
			//向表中插入记录


			sql="INSERT INTO STUDENT"+"VALUES('200108','赵小龙','男',20,71,62,76)";
			stmt.executeUpdate(sql);
			//检索student表中的所有记录
			sql="SELECT * FROM STUDENT";
			ResultSet rs = stmt.executeQuery(sql);
			System.out.println("学号  姓名	性别	年龄"+"	高等数学	英语	专业课");
		
		while(rs.next()){
			num=rs.getString(1);
			name=rs.getString(2);
			sex=rs.getString(3);
			age=rs.getInt(4);
			math=rs.getInt(5);
			eng=rs.getInt("英语");
			spec=rs.getInt("专业课");
			System.out.println(num+name+" "+sex+" "+age+" "+math+" "+eng+" "+spec);
		}
		//检索高等数学成绩80分以上的学生信息

rs=stmt.executeQuery("SELECT 学号,姓名,高等数学,英语,专业课"+"FROM STUDENT "+"WHERE 高等数学>=80");
			System.out.println();
			System.out.println("The students whose math mark is beyond 80 aer:");
		while(rs.next()){
			num=rs.getString(1);
			name=rs.getString(2);
			math=rs.getInt(3);
			eng=rs.getInt("英语");
			spec=rs.getInt("专业课");
			System.out.println("学号="+num+" "+"姓名="+name+" "+"高等数学="+math+" "+"英语="+eng+" "+"专业课="+spec);
	}//关闭连接
		stmt.close();
		con.close();
}catch(SQLException ex){
		System.err.println("SQLException:"+ex.getMessage());
		}
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值