哪个不是jdbc用到的接口和类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哪个不是jdbc用到的接口和类相关的知识,希望对你有一定的参考价值。
参考技术A如下是用得到的:
Class.forName('......');
Connection conn = DriverManager.getConnection();
Statement stmt = conn.createStatement();
PreparedStatement pstmt = conn.prepareStatement();
ResultSet rs = stmt.executeQuery();
加粗的都是,不在这个范围内的,基本就不是了。
参考技术B 选C JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员 参考技术C 以下是JDBC常用接口和类,楼主自己对应吧:DriverManager:用于管理JDBC驱动的服务类。程序中使用该类的的主要功能是获取Connection对象,该类包含如下方法:
public static Connection
getConnection(String url, String user, String password) throws SQLException
该方法获得url对应数据库的连接;
Connection:代表数据库连接对象,每个Connection代表一个物理连接会话。要想访问数据库,必须先得到数据库连接。该接口的常用方法如下:
Statement
createStatement() throws SQLException; 该方法返回一个Statement对象;
PreparedStatement
prepareStatement(String sql)throws SQLException;该方法返回预编译的Statement对象,即将SQL语句提交到数据库进行预编译;
CallableStatement
prepareCall(String sql) throws SQLException;
该方法返回CallableStatement对象,该对象用于调用存储过程。
上面上个方法都返回用于执行sql语句的Statement对象,PreparedStatement和CallableStatement是Statement的子类,只有获得了Statement之后才可以执行sql语句;
除此之外,Connection还有如下几个用于控制事务的方法。
Savepoint
setSavepoint() throws SQLException;创建一个保存点;
Savepoint
setSavepoint(String name) throws SQLException;以指定名字来创建一个保存点;
void
setTransactionIsolation(int level) throws SQLException;设置事务的隔离级别;
void
rollback() throws SQLException;回滚事务;
void
rollback(Savepoint savepoint) throws SQLException;将事务回滚到指定的保存点;
void
setAutoCommit(boolean autoCommit) throws SQLException;关闭自动提交,打开事务;
void
commit() throws SQLException;提交事务;
Statement:用于执行sql语句的工具接口。该对象既可以执行DDL,DCL语句,也可以用于执行DML语句,还可以用于执行sql查询。当执行sql查询时,返回查询到的结果集。它的常用方法如下:
ResultSet
executeQuery(String sql) throws SQLException;该方法用于执行查询语句,并返回查询结果对应ResultSet对象。该方法只能用于执行查询语句。
int executeUpdate(String sql) throws SQLException;该方法用于执行DML语句,并返回受影响的行数;该方法也可用于执行DDL语句,执行DDL语句将返回0;
boolean
execute(String sql) throws SQLException;改方法可以执行任何sql语句。如果执行后第一个结果为ResultSet对象,则返回true;如果执行后第一个结果为受影响的行数或没有任何结果,则返回false;
PreparedStatement:预编译的Statement对象,PreparedStatement是Statement的子接口,它允许数据库预编译sql语句(这些sql语句通常带有参数),以后每次只改变sql命令的参数,避免数据库每次都需要编译sql语句,无需再传入sql语句,
只要为预编译的sql语句传入参数值即可。所以它比Statement多了如下方法:
void
setXxx(int parameterIndex, Xxx value):该方法根据传入参数值的类型不同,需要使用不同的方法。传入的值根据索引传给sql语句中指定位置的参数。
ResultSet:结果集对象。该对象包含访问查询结果的方法,ResultSet可以通过列索引或列名获得列数据。它包含了如下常用方法来移动记录指针。
void
close() throws SQLException;释放ResultSet对象;
boolean
absolute( int row ) throws SQLException;将结果集的记录指针移动到第row行,如果row是负数,则移动到倒数第row行,如果移动后的记录指针指向一条有效记录,则该方法返回true;
boolean
next() throws SQLException;将结果集的记录指针定位到下一行,如果移动后的记录指针指向一条有效的记录,则该方法返回true;
boolean
last() throws SQLException;将结果集的记录指针定位到最后一行,如果移动后的记录指针指向一条有效的记录,则该方法返回true;本回答被提问者采纳
JDBC常见接口和类
在浏览本篇文章前建议先看这篇JDBC基础知识篇:
JDBC编程
下面介绍JDBC常用的接口和类:
数据库连接Connection
Connection接口实现类由数据库提供,下面主要讲获取connection对象的两种方式:
1.通过DriverManager(驱动管理类)的静态方法获取:
//加载驱动JDBC程序
Class.forName(“com.mysql.jdbc.Driver”);
加上
//创建数据库连接
Connection connection = DriverManager.getConnection(url);
2.通过DataSource(数据源)对象获取。实际应用中会使用DataSource对象。(不需要手动加载驱动)
DataSource ds = new MysqlDataSource();
((MysqlDataSource) ds).setUrl(url);
((MysqlDataSource) ds).setUser(username);
((MysqlDataSource) ds).setPassword(password);
Connection connection = ds.getConnection();
这两种方式的区别:
(1)DriverManager类来获取的Connection连接是无法重复利用的,每次使用完以后释放资源时,通过connection.close( )都是关闭物理连接。
(2)DataSource提供连接池的支持。连接池在初始化时创建一定数量的数据库连接,这些连接时可以重复利用的,每次使用完数据库连接,释放资源调用connection.close( )都是将Connection连接对象回收。
Statement对象
Statement对象主要是将SQL语句发送到数据库中。JDNV API中主要提供了三种Statement对象。
实际开发中最常用的是PreparedStatement对象,下面讲解如何使用PreparedStatement代替Statemnet:
当由前端传来的use和password要进行字符串的拼接时继续使用Statement可能会产生SQL注入问题,为了解决这个问题就不得不使用PreparedStatement。
String name = “bit”;
String pwd = “1234”;
String sql = “select * from user where name = ? and password = ?”;
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1,name);
preparedStatement.setString(2,pwd);
此处的 ? 代表占位符
此时的结果集就应该是这样的操作:
ResultSet resultSet = preparedStatement.executeQuery();
ResultSet对象
ResultSet对象它被称为结果集,它代表符合SQL语句条件的所有行,并且它通过一套getXXX方法提供了对这些行中的数据进行访问。
ResultSet里的数据一行一行排列,每行由多个字段,并且有一个记录指针,指针所指的数据叫做当前数据行,我们只能来操作当前数据行。我们如果想要取得某一条数据,就要使用ResultSet的next( )方法。ResultSet是从第0
行开始的哦!
以上是关于哪个不是jdbc用到的接口和类的主要内容,如果未能解决你的问题,请参考以下文章