JDBC编程

来源:互联网 发布:微整形后遗症知乎 编辑:程序博客网 时间:2024/05/02 01:32

JDBC提供了独立于数据库的统一API,用以执行SQL命令。JDBC由一下常用的接口和类组成:

DriverManager:用于管理JDBC驱动的服务类。程序中使用该类的主要功能是获取Connecttion对象,该类包含一下方法:

public static synchronized Connection getConnection(String url,String user,String pass) throws SQLException:该方法获取url对应数据库的连接。

Connection:代表数据库连接对象,每个Connection代表一个物理连接会话。要想访问数据库,必须获取数据库连接。该接口的方法有:

Statement createStatement() throws SQLExcetpion:该方法返回一个Statement对象。

PreparedStatement prepareStatement(String sql) throws SQLException:该方法返回预编译的Statment对象,

即将SQL语句提交到数据库进行预编译。

CallableStatement pripareCall(String sql)throws SQLexception:该方法返回CallableStatement对象,该对象用于调用存储过程。

上面三个方法都是返回用于执行SQL语句的Statement对象,PreparedStatement,CallableStatement是Statement的子类。只有获取得了Statement之后才可以执行SQL语句。

此外,Connection还有几个用于控制事务的方法:

Savepoint setSavepoint():创建一个保存点。

Savepoint setSavepoint(String name);以指定名字来创建一个保存点。

void setTransactionIsolation(int level):设置事务的隔离级别。

void rollback():回滚事务。

void rollback(Savepoint savepoint):将事务回滚到指定的保存点。

void setAutoCommit(boolean autoCommit):关闭自动提交,打开事务。

void commit();提交事务。


Statement

用于执行SQL语句的工具接口。该对象既可以用于执行DDL、DCL语句,也可以用于执行DML语句,还可以用于执行SQL查询。当执行SQL查询时,返回查询到的结果集。

ResultSet executeQuery(String sql)throws SQLException:该方法用于执行查询语句并返回查询结果对应的ResultSet对象。该方法只能用于执行查询语句。

int executeUpdate(String sql)throws SQLException:该方法用于DML语句,并返回受影响的行数;该方法也可以用于执行DDL,fangf 0.

boolean execute(String sql)throws SQLException:该方法可以执行任何SQL语句,如果执行返回后第一个结果为ResultSet对象,则返回true;如果执行

后第一个结果为受影响的行数或没有任何结果,则返回false。

PreparedStatement

预编译的Statement对象。是Statement的子接口,它允许数据库预编译SQL语句,以后每次只改变SQL命令的参数避免数据库没都要变量sql语句:
void setXxx(int parameterIndex,Xxx value)


public static void main(String[] args) throws ClassNotFoundException, SQLException {
// TODO Auto-generated method stub
Class.forName("com.mysql.jdbc.Driver");

Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/testdatabase", "root", "123456");

Statement stmt = conn.createStatement();

// stmt.executeUpdate("create table jdbc_test" + "(jdbc_id int auto_increment primary key,"+"jdbc_name varchar(255),"+"jdbc_desc text);");

ResultSet rs = stmt.executeQuery("select * from wawa");

int result = stmt.executeUpdate("insert into jdbc_test (jdbc_name,jdbc_desc) values ('axb','man');");
//
// while(rs.next()){
// System.out.println(rs.getString(2));
// }
rs.close();
stmt.close();
conn.close();
}




0 0