JAVA JDBC数据库开发
2012-10-17 10:37
232 查看
基于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()); } } }
相关文章推荐
- 完整java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库步骤
- 完整java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤
- java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤
- [置顶] 完整java开发中JDBC连接数据库代码和步骤
- (转)完整java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤
- 完整java开发中JDBC连接数据库代码和步骤