java中操作数据库中的几个重要类
来源:互联网 发布:创维高清网络机顶盒 编辑:程序博客网 时间:2024/06/10 15:19
编写访问数据库的Java程序还需要几个重要的类和接口。
static Connection getConnection(String url,String username,String password)
指定数据的URL用户名和密码创建数据库连接对象。url的语法格式是:
jdbc:<数据库的连接机制>:<ODBC数据库名>。
Statement sql = null;
try{
sql = con.createStatement();
}catch(SQLException e){}
ResultSet rs = sql.executeQuery(“SELECT * FROM ksInfo”);
ResultSet对象实际上是一个由查询结果数据的表,是一个管式数据集,由统一形式的数据行组成,一行对应一条查询记录。在ResultSet对象中隐含着一个游标,一次只能获得游标当前所指的数据行,用next方法可取下一个数据行。用数据行的字段(列)名称或位置索引(自1开始)调用形如getXXX()方法获得记录的字段植 。以下是ResultSet对象的部分方法:
用户需要在查询结果集上浏览,或前后移动、或显示结果集的指定记录,这称为可滚动结果集。程序要获得一个可滚动结果集,只要在获得SQL的语句对象时,增加指定结果集的两个参数即可。例如,以下代码:
Statement stmt = con.createStatement(type,concurrency);
ResultSet rs = stmt.executeQuery(SQL语句)
语句对象stmt的SQL查询就能得到相应类型的结果集。
例如,以下代码利用连接对象connect,创建Statement对象stmt,指定结果集可滚动,并以只读方式读数据库:
stmt = connect.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
可滚动集上另外一些常用的方法如下:
字段摘要
指示列不允许使用
指示列允许使用
指示不知道列的值是否可为 null 的常量。方法摘要
获取指定列的表目录名称。
如果调用方法
返回此
指示指定列的最大标准宽度,以字符为单位。
获取用于打印输出和显示的指定列的建议标题。
获取指定列的名称。
获取指定列的 SQL 类型。
获取指定列的数据库特定的类型名称。
获取指定列的指定列宽。
获取指定列的小数点右边的位数。
获取指定列的表模式。
获取指定列的名称。
指示是否自动为指定列进行编号。
指示列的大小写是否有关系。
指示指定的列是否是一个哈希代码值。
指示在指定的列上进行写操作是否明确可以获得成功。
指示指定列中的值是否可以为 null。
指示指定的列是否明确不可写入。
指示是否可以在 where 子句中使用指定的列。
指示指定列中的值是否带正负号。
指示在指定的列上进行写操作是否可以获得成功。
字段摘要 从接口 java.sql.Statement 继承的字段 方法摘要
将一组参数添加到此
立即清除当前参数值。
在此
在此
在此
获取包含有关
获取此
将指定参数设置为给定
将指定参数设置为给定输入流。
将指定参数设置为给定输入流,该输入流将具有给定字节数。
将指定参数设置为给定输入流,该输入流将具有指定字节数。
将指定参数设置为给定
将指定参数设置为给定输入流。
将指定参数设置为给定输入流,该输入流将具有给定字节数。
将指定参数设置为给定输入流,该输入流将具有指定字节数。
将指定参数设置为给定
将指定参数设置为
将指定参数设置为
将指定参数设置为给定 Java
将指定参数设置为给定 Java
将指定参数设置为给定 Java byte 数组。
将指定参数设置为给定
将给定参数设置为给定
将指定参数设置为给定
将指定参数设置为给定
将指定参数设置为
将指定参数设置为
使用运行应用程序的虚拟机的默认时区将指定参数设置为给定
使用给定的
将指定参数设置为给定 Java
将指定参数设置为给定 Java
将指定参数设置为给定 Java
将指定参数设置为给定 Java
将指定参数设置为
将指定参数设置为
将指定参数设置为
将指定参数设置为
将指定参数设置为
将指定参数设置为给定
将指定参数设置为 SQL
将指定参数设置为 SQL
使用给定对象设置指定参数的值。
使用给定对象设置指定参数的值。
使用给定对象设置指定参数的值。
将指定参数设置为给定
将指定参数设置为给定
将指定参数设置为给定 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对象。
PreparedStatement prepareStatement(String sql)
:创建一个PreparedStatement
对象来将参数化的 SQL 语句发送到数据库。- 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():返回是否还有下一字段。
用户需要在查询结果集上浏览,或前后移动、或显示结果集的指定记录,这称为可滚动结果集。程序要获得一个可滚动结果集,只要在获得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行。
public interface ResultSetMetaData
- extends Wrapper
可用于获取关于 ResultSet
对象中列的类型和属性信息的对象。以下代码片段创建ResultSet
对象 rs,创建 ResultSetMetaData
对象 rsmd,并使用 rsmd 查找 rs 有多少列,以及 rs 中的第一列是否可以在WHERE
子句中使用。
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2"); ResultSetMetaData rsmd = rs.getMetaData(); int numberOfColumns = rsmd.getColumnCount(); boolean b = rsmd.isSearchable(1);
static int
columnNoNulls
指示列不允许使用
NULL
值的常量。static int
columnNullable
指示列允许使用
NULL
值的常量。static int
columnNullableUnknown
指示不知道列的值是否可为 null 的常量。
String
getCatalogName(int column)
获取指定列的表目录名称。
String
getColumnClassName(int column)
如果调用方法
ResultSet.getObject
从列中获取值,则返回构造其实例的 Java 类的完全限定名称。 int
getColumnCount()
返回此
ResultSet
对象中的列数。 int
getColumnDisplaySize(int column)
指示指定列的最大标准宽度,以字符为单位。
String
getColumnLabel(int column)
获取用于打印输出和显示的指定列的建议标题。
String
getColumnName(int column)
获取指定列的名称。
int
getColumnType(int column)
获取指定列的 SQL 类型。
String
getColumnTypeName(int column)
获取指定列的数据库特定的类型名称。
int
getPrecision(int column)
获取指定列的指定列宽。
int
getScale(int column)
获取指定列的小数点右边的位数。
String
getSchemaName(int column)
获取指定列的表模式。
String
getTableName(int column)
获取指定列的名称。
boolean
isAutoIncrement(int column)
指示是否自动为指定列进行编号。
boolean
isCaseSensitive(int column)
指示列的大小写是否有关系。
boolean
isCurrency(int column)
指示指定的列是否是一个哈希代码值。
boolean
isDefinitelyWritable(int column)
指示在指定的列上进行写操作是否明确可以获得成功。
int
isNullable(int column)
指示指定列中的值是否可以为 null。
boolean
isReadOnly(int column)
指示指定的列是否明确不可写入。
boolean
isSearchable(int column)
指示是否可以在 where 子句中使用指定的列。
boolean
isSigned(int column)
指示指定列中的值是否带正负号。
boolean
isWritable(int column)
指示在指定的列上进行写操作是否可以获得成功。
public interface PreparedStatement
- extends Statement
表示预编译的 SQL 语句的对象。
SQL 语句被预编译并存储在 PreparedStatement
对象中。然后可以使用此对象多次高效地执行该语句。
注:用于设置 IN 参数值的设置方法(setShort
、setString
等等)必须指定与输入参数的已定义 SQL 类型兼容的类型。例如,如果 IN 参数具有 SQL 类型INTEGER
,那么应该使用 setInt
方法。
如果需要任意参数类型转换,使用 setObject
方法时应该将目标 SQL 类型作为其参数。
在以下设置参数的示例中,con
表示一个活动连接:
PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?"); pstmt.setBigDecimal(1, 153833.00) pstmt.setInt(2, 110592)
- 另请参见:
Connection.prepareStatement(java.lang.String)
,ResultSet
CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO
void
addBatch()
将一组参数添加到此
PreparedStatement
对象的批处理命令中。 void
clearParameters()
立即清除当前参数值。
boolean
execute()
在此
PreparedStatement
对象中执行 SQL 语句,该语句可以是任何种类的 SQL 语句。 ResultSet
executeQuery()
在此
PreparedStatement
对象中执行 SQL 查询,并返回该查询生成的 ResultSet
对象。 int
executeUpdate()
在此
PreparedStatement
对象中执行 SQL 语句,该语句必须是一个 SQL 数据操作语言(Data Manipulation Language,DML)语句,比如INSERT
、UPDATE
或 DELETE
语句;或者是无返回内容的 SQL 语句,比如 DDL 语句。 ResultSetMetaData
getMetaData()
获取包含有关
ResultSet
对象列信息的 ResultSetMetaData
对象,ResultSet
对象将在执行此PreparedStatement
对象时返回。 ParameterMetaData
getParameterMetaData()
获取此
PreparedStatement
对象的参数的编号、类型和属性。 void
setArray(int parameterIndex,Array x)
将指定参数设置为给定
java.sql.Array
对象。 void
setAsciiStream(int parameterIndex,InputStream x)
将指定参数设置为给定输入流。
void
setAsciiStream(int parameterIndex,InputStream x, int length)
将指定参数设置为给定输入流,该输入流将具有给定字节数。
void
setAsciiStream(int parameterIndex,InputStream x, long length)
将指定参数设置为给定输入流,该输入流将具有指定字节数。
void
setBigDecimal(int parameterIndex,BigDecimal x)
将指定参数设置为给定
java.math.BigDecimal
值。 void
setBinaryStream(int parameterIndex,InputStream x)
将指定参数设置为给定输入流。
void
setBinaryStream(int parameterIndex,InputStream x, int length)
将指定参数设置为给定输入流,该输入流将具有给定字节数。
void
setBinaryStream(int parameterIndex,InputStream x, long length)
将指定参数设置为给定输入流,该输入流将具有指定字节数。
void
setBlob(int parameterIndex,Blob x)
将指定参数设置为给定
java.sql.Blob
对象。 void
setBlob(int parameterIndex,InputStream inputStream)
将指定参数设置为
InputStream
对象。 void
setBlob(int parameterIndex,InputStream inputStream, long length)
将指定参数设置为
InputStream
对象。 void
setBoolean(int parameterIndex, boolean x)
将指定参数设置为给定 Java
boolean
值。 void
setByte(int parameterIndex, byte x)
将指定参数设置为给定 Java
byte
值。 void
setBytes(int parameterIndex, byte[] x)
将指定参数设置为给定 Java byte 数组。
void
setCharacterStream(int parameterIndex,Reader reader)
将指定参数设置为给定
Reader
对象。 void
setCharacterStream(int parameterIndex,Reader reader, int length)
将给定参数设置为给定
Reader
对象,该对象具有给定字符数长度。 void
setCharacterStream(int parameterIndex,Reader reader, long length)
将指定参数设置为给定
Reader
对象,该对象具有给定字符数长度。 void
setClob(int parameterIndex,Clob x)
将指定参数设置为给定
java.sql.Clob
对象。 void
setClob(int parameterIndex,Reader reader)
将指定参数设置为
Reader
对象。 void
setClob(int parameterIndex,Reader reader, long length)
将指定参数设置为
Reader
对象。 void
setDate(int parameterIndex,Date x)
使用运行应用程序的虚拟机的默认时区将指定参数设置为给定
java.sql.Date
值。 void
setDate(int parameterIndex,Date x, Calendar cal)
使用给定的
Calendar
对象将指定参数设置为给定 java.sql.Date
值。 void
setDouble(int parameterIndex, double x)
将指定参数设置为给定 Java
double
值。 void
setFloat(int parameterIndex, float x)
将指定参数设置为给定 Java
REAL
值。 void
setInt(int parameterIndex, int x)
将指定参数设置为给定 Java
int
值。 void
setLong(int parameterIndex, long x)
将指定参数设置为给定 Java
long
值。 void
setNCharacterStream(int parameterIndex,Reader value)
将指定参数设置为
Reader
对象。 void
setNCharacterStream(int parameterIndex,Reader value, long length)
将指定参数设置为
Reader
对象。 void
setNClob(int parameterIndex,NClob value)
将指定参数设置为
java.sql.NClob
对象。 void
setNClob(int parameterIndex,Reader reader)
将指定参数设置为
Reader
对象。 void
setNClob(int parameterIndex,Reader reader, long length)
将指定参数设置为
Reader
对象。 void
setNString(int parameterIndex,String value)
将指定参数设置为给定
String
对象。 void
setNull(int parameterIndex, int sqlType)
将指定参数设置为 SQL
NULL
。 void
setNull(int parameterIndex, int sqlType,String typeName)
将指定参数设置为 SQL
NULL
。 void
setObject(int parameterIndex,Object x)
使用给定对象设置指定参数的值。
void
setObject(int parameterIndex,Object x, int targetSqlType)
使用给定对象设置指定参数的值。
void
setObject(int parameterIndex,Object x, int targetSqlType, int scaleOrLength)
使用给定对象设置指定参数的值。
void
setRef(int parameterIndex,Ref x)
将指定参数设置为给定
REF(<structured-type>)
值。 void
setRowId(int parameterIndex,RowId x)
将指定参数设置为给定
java.sql.RowId
对象。 void
setShort(int parameterIndex, short x)
将指定参数设置为给定 Java
short
值。 void
setSQLXML(int parameterIndex,SQLXML xmlObject)
将指定参数设置为给定
java.sql.SQLXML
对象。 void
setString(int parameterIndex,String x)
将指定参数设置为给定 Java
String
值。 void
setTime(int parameterIndex,Time x)
将指定参数设置为给定
java.sql.Time
值。 void
setTime(int parameterIndex,Time x, Calendar cal)
使用给定的
Calendar
对象将指定参数设置为给定 java.sql.Time
值。 void
setTimestamp(int parameterIndex,Timestamp x)
将指定参数设置为给定
java.sql.Timestamp
值。 void
setTimestamp(int parameterIndex,Timestamp x, Calendar cal)
使用给定的
Calendar
对象将指定参数设置为给定 java.sql.Timestamp
值。 void
setUnicodeStream(int parameterIndex,InputStream x, int length)
已过时。
void
setURL(int parameterIndex,URL x)
将指定参数设置为给定
java.net.URL
值。 0 0
- java中操作数据库中的几个重要类
- java中重要的几个常用类
- 几个重要的java数据库访问类和接口
- 几个重要的java数据库访问类和接口
- 几个重要的java数据库访问类和接口
- 几个重要的java数据库访问类和接口
- java设计模式中的几个重要原则
- Java中的几个重要的数据类型
- Java 线程中的几个重要方法
- Mybatis中几个重要类
- Mybatis中几个重要类
- Mybatis中几个重要类
- Mybatis中几个重要类
- Mybatis中几个重要类
- Mybatis中几个重要类
- java.util包中几个重要集合类描述
- Java Servlet API中有几个比较重要的类
- java中几个重要的知识细节!
- Android通过反射方式强制退出应用程序
- arcgis error 000224 000372
- 二进制的运算相关
- [UVA]10474 Where is the Marble?
- 【seo优化】为什么说网站被劫持了?
- java中操作数据库中的几个重要类
- 常用类
- 约瑟夫问题 java解法(双向链表解决)
- android 6.0 日历新建活动错误
- H5之DrawImage使用
- 如何部署Android开发环境以及解决部署中遇到的问题
- 实现自定义右键菜单
- linux 进程地址空间
- 数源思维完成目标设定