DriverManager类
DriverManager类处理驱动程序的加载和建立新数据库连接。DriverManager是java.sql包中用于管理数据库驱动程序的类。通常,应用程序只使用类DriverManager的getConnection()静态方法,用来建立与数据库的连接,返回Connection对象:
static Connection getConnection(String url,String username,String password)
指定数据的URL用户名和密码创建数据库连接对象。url的语法格式是:
jdbc:<数据库的连接机制>:。
Connection类
Connection类是java.sql包中用于处理与特定数据库连接的类。Connection对象是用来表示数据库连接的对象,Java程序对数据库的操作都在这种对象上进行。Connection类的主要方法有:
1、Statement createStatement():创建一个Statement对象。
2、Statement createStatement(int resultSetType,int resultSetConcurrency):创建一个Statement对象,生成具有特定类型的结果集。
3、void commit():提交对数据库的改动并释放当前持有的数据库的锁。
4、void rollback():回滚当前事务中的所有改动并释放当前连接持有的数据库的锁。
5、String getCatalog():获得连接对象的当前目录。
6、boolean isClose():判断连接是否已关闭。
7、boolean isReadOnly():判断连接是否为只读模式。
8、void setReadOnly():设置连接为只读模式。
9、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对象的部分方法:
1、byte getByte(int columnIndex):返回指定字段的字节值。
2、Date getDate(int columnIndex):返回指定字段的日期值。
3、float getFloat(int columnIndex):返回指定字段的浮点值。
4、int getInt(int columnIndex):返回指定字段的整数值。
5、String getString(int columnIndex):返回指定字段的字符串值。
6、double getDouble(String columnName):返回指定字段的双精度值。
7、long getLong(String columnName):返回指定字段的long型整值。
8、boolean next():返回是否还有下一字段。
以上方法中的columnIndex是位置索引,用于指定字段,columnName是字段名。
用户需要在查询结果集上浏览,或前后移动、或显示结果集的指定记录,这称为可滚动结果集。程序要获得一个可滚动结果集,只要在获得SQL的语句对象时,增加指定结果集的两个参数即可。例如,以下代码:
Statement stmt = con.createStatement(type,concurrency);
ResultSet rs = stmt.executeQuery(SQL语句)
语句对象stmt的SQL查询就能得到相应类型的结果集。
1、int 型参数type决定可滚动集的滚动方式:
1)、ResultSet.TYPE_FORWORD_ONLY,结果集的游标只能向下滚动。
2)、ResultSet.TYPE_SCROLL_INSENSITIVE,游标可上下移动,当数据库变化时,当前结果集不变。
3)、ResultSet. TYPE_SCROLL_SENSITIVE,游标可上下移动,当数据库变化时,当前结果集同步改变。
2、int 型参数concurrency决定数据库是否与可滚动集同步更新:
1)、ResultSet.CONCUR_READ_ONLY,不能用结果集更新数据库中的表。
2)、ResultSet.CONCUR_UPDATETABLE,能用结果集更新数据库中的表。
例如,以下代码利用连接对象connect,创建Statement对象stmt,指定结果集可滚动,并以只读方式读数据库:
stmt = connect.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
可滚动集上另外一些常用的方法如下:
1、boolean previous():将游标向上移动,当移到结果集的第一行时,返回false。
2、void beforeFirst():将游标移结果集的第一行之前。
3、void afterLast():将游标移到结果集的最后一行之后。
4、void first():将游标移到第一行。
5、void last():将游标移到最后一行。
6、boolean isAfterLast():判游标是否在最后一行之后。
7、boolean isBeforeFirst():判游标是否在第一行之前。
8、boolean isLast():判游标是否在最后一行。
9、boolean isFirst():判游标是否在第一行。
10、int getRow():获取当前所指的行(行号自1开始编号,结果集空,返回0)。
11、boolean absolute(int row):将游标移到row行。
总结:
Java程序与后台数据库进行交互,读取或者写入数据,是应用当中非常常见的。比如你登录自己的邮箱或者BBS帐号,系统就要从后台提取相应的用户名密码,来验证你的登录信息是否正确。
Java数据库连接(JDBC)由一组用 Java 编程语言编写的类和接口组成。JDBC驱动器实现与某个数据库的接口。JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序。有了这种特定的接口,开发人员能够在不修改访问数据库的Java代码的情况下,改动底层的数据库数据,给开发带来便利。然而各个开发商的接口并不完全相同,所以开发环境的变化会带来一定的配置变化。我们在本文中介绍一下不同数据库的连接方式。 有了这些数据库使用JDBC连接的方式,作为一个固定的接口使用,给今后的开发带来便利。
1、MySQL数据库
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url
="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
//myDB为数据库名
Connection conn= DriverManager.getConnection(url);2、DB2数据库
Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
String url="jdbc:db2://localhost:5000/sample";
//sample为数据库名 String user="admin";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
3、Sql Server2000数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
//mydb为数据库
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);4、Sybase数据库
Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/myDB";
//myDB为数据库名
Properties sysProps = System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= DriverManager.getConnection(url, SysProps);
5、Informix数据库
Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url =
"jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword";
//myDB为数据库名
Connection conn= DriverManager.getConnection(url);6、Oracle8/8i/9i数据库(thin模式)
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl";
//orcl为数据库的SID String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password);7、PostgreSQL数据库
Class.forName("org.postgresql.Driver").newInstance();
String url ="jdbc:postgresql://localhost/myDB"
//myDB为数据库名
String user="myuser";
String password="mypassword";
Connection conn= DriverManager.getConnection(url,user,password);到此,介绍完毕。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
