Java程序连接数据库的常用的类和接口介绍
编写访问数据库的java程序还需要几个重要的类和接口。
drivermanager类
drivermanager类处理驱动程序的加载和建立新数据库连接。drivermanager是java.sql包中用于管理数据库驱动程序的类。通常,应用程序只使用类drivermanager的getconnection()静态方法,用来建立与数据库的连接,返回connection对象:
static connection getconnection(string url,string username,string password)
指定数据的url用户名和密码创建数据库连接对象。url的语法格式是:
jdbc:<数据库的连接机制>:<odbc数据库名>。
connection类
connection类是java.sql包中用于处理与特定数据库连接的类。connection对象是用来表示数据库连接的对象,java程序对数据库的操作都在这种对象上进行。connection类的主要方法有:
- statement createstatement():创建一个statement对象。
- statement createstatement(int resultsettype,int resultsetconcurrency):创建一个statement对象,生成具有特定类型的结果集。
- void commit():提交对数据库的改动并释放当前持有的数据库的锁。
- void rollback():回滚当前事务中的所有改动并释放当前连接持有的数据库的锁。
- string getcatalog():获得连接对象的当前目录。
- boolean isclose():判断连接是否已关闭。
- boolean isreadonly():判断连接是否为只读模式。
- void setreadonly():设置连接为只读模式。
- void close():释放连接对象的数据库和jdbc资源。
statement类
statement类是java.sql包中用于在指定的连接中处理sql语句的类。数据库编程的要点是在程序中嵌入sql命令。程序需要声明和创建连接数据库的connection对象,并让该对象连接数据库。调用类drivermanager的静态方法getconnection()获得connection对象,实现程序与数据库的连。然后,用statement类声明sql语句对象,并调用connection对象的createstatement()方法,创建sql语句对象。例如,以下代码创建语句对象sql:
statement sql = null; try{ sql = con.createstatement(); }catch(sqlexception e){}
resultset类
有了sql语句对象后,调用语句对象的方法executequery()执行sql查询,并将查询结果存放在一个用resultset类声明的对象中,例如,以下代码读取学生成绩表存于rs 对象中:
resultset rs = sql.executequery(“select * from ksinfo”);
resultset对象实际上是一个由查询结果数据的表,是一个管式数据集,由统一形式的数据行组成,一行对应一条查询记录。在resultset对象中隐含着一个游标,一次只能获得游标当前所指的数据行,用next方法可取下一个数据行。用数据行的字段(列)名称或位置索引(自1开始)调用形如getxxx()方法获得记录的字段植 。以下是resultset对象的部分方法:
- byte getbyte(int columnindex):返回指定字段的字节值。
- date getdate(int columnindex):返回指定字段的日期值。
- float getfloat(int columnindex):返回指定字段的浮点值。
- int getint(int columnindex):返回指定字段的整数值。
- string getstring(int columnindex):返回指定字段的字符串值。
- double getdouble(string columnname):返回指定字段的双精度值。
- long getlong(string columnname):返回指定字段的long型整值。
- boolean next():返回是否还有下一字段。
以上方法中的columnindex是位置索引,用于指定字段,columnname是字段名。
用户需要在查询结果集上浏览,或前后移动、或显示结果集的指定记录,这称为可滚动结果集。程序要获得一个可滚动结果集,只要在获得sql的语句对象时,增加指定结果集的两个参数即可。例如,以下代码:
statement stmt = con.createstatement(type,concurrency); resultset rs = stmt.executequery(sql语句)
语句对象stmt的sql查询就能得到相应类型的结果集。
int 型参数type决定可滚动集的滚动方式:
- resultset.type_forword_only,结果集的游标只能向下滚动。
- resultset.type_scroll_insensitive,游标可上下移动,当数据库变化时,当前结果集不变。
- resultset. type_scroll_sensitive,游标可上下移动,当数据库变化时,当前结果集同步改变。
int 型参数concurrency决定数据库是否与可滚动集同步更新:
- resultset.concur_read_only,不能用结果集更新数据库中的表。
- resultset.concur_updatetable,能用结果集更新数据库中的表。
例如,以下代码利用连接对象connect,创建statement对象stmt,指定结果集可滚动,并以只读方式读数据库:
stmt = connect.createstatement(resultset.type_scroll_sensitive, resultset.concur_read_only);
可滚动集上另外一些常用的方法如下:
- boolean previous():将游标向上移动,当移到结果集的第一行时,返回false。
- void beforefirst():将游标移结果集的第一行之前。
- void afterlast():将游标移到结果集的最后一行之后。
- void first():将游标移到第一行。
- void last():将游标移到最后一行。
- boolean isafterlast():判游标是否在最后一行之后。
- boolean isbeforefirst():判游标是否在第一行之前。
- boolean islast():判游标是否在最后一行。
- boolean isfirst():判游标是否在第一行。
- int getrow():获取当前所指的行(行号自1开始编号,结果集空,返回0)。
- boolean absolute(int row):将游标移到row行。
上一篇: java实现的正则工具类
下一篇: 浅谈 C++的 >> 输入流
推荐阅读
-
Java程序连接数据库的常用的类和接口介绍
-
Java程序连接数据库的常用的类和接口介绍
-
java 中数据库连接的JDBC和驱动程序的深入分析
-
java 中数据库连接的JDBC和驱动程序的深入分析
-
定义两个接口,其中各包括一个抽象方法分别用来完成两个数的加法和减法操作,然后创建一个类KY6_3来实现这两个接口中的抽象方法。编写程序KY6_3.java,将源程序写在实验报告中。
-
mysql-Java Web连接MySql数据库,修改数据库连接类中的用户名和密码没有效果?
-
java中抽象类和接口的相同和不同点介绍
-
mysql-Java Web连接MySql数据库,修改数据库连接类中的用户名和密码没有效果?
-
Java抽象类和接口分别是什么?Java抽象类和接口的简单介绍(实例)
-
java接口和抽象类的介绍(代码示例)