代码改变世界

mysql-jdbc创建Statement与执行SQL

2014-11-30 01:18  张紫荣  阅读(2107)  评论(0编辑  收藏  举报

使用JDBC创建Connection后,执行SQL需要先创建Statement

Statement stmt = connection.createStatement();

创建代码如下

public java.sql.Statement createStatement() throws SQLException {
        return createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,
                java.sql.ResultSet.CONCUR_READ_ONLY);
    }


//默认查询结果 正向循环、只读查询结果
public java.sql.Statement createStatement(int resultSetType,
            int resultSetConcurrency) throws SQLException {
    //检查 connection是否关闭 checkClosed(); Statement stmt
= new com.mysql.jdbc.Statement(this, this.database); stmt.setResultSetType(resultSetType); stmt.setResultSetConcurrency(resultSetConcurrency); return stmt; }

执行查询SQL时:

ResultSet rs = stmt.executeQuery("test");

返回的ResultSet的数据存放在rowData中(protected RowData rowData)。

  执行next后是一个对象数组。

Statement的关闭方法,默认在关闭statment的同时,也关闭ResultSet。

public void close() throws SQLException {
		realClose(true, true);
	}

.....
this.isClosed = true;
.....

 

----------------------------------------------------

1、在DriverManager.getConnection的时候创建与mysql服务端的连接

2、Statement共用同一连接。

3、关闭Connection的时候才会关系连接,也会调用关系所有statement方法closeAllOpenStatements()。