- Statement的execute()语句可以执行任何SQL语句,但是它比较麻烦,故通常应该使用executeQuery()或者executeUpdate()方法。
- 使用exrcute()方法执行只是返回boolean值,它表示执行该SQL语句是否返回了ResultSet对象,如果需要获取ResultSet对象的话,可以使用下面两个方法:
- getResultSet()获取该Statement执行查询语句后返回的ResultSet对象
- getUpdateCount()获取该Statement执行SQL语句后影响的记录行数
- 以下为代码示例,具体讲解穿插在代码中
import java.io.FileInputStream; import java.sql.*; import java.util.Properties; public class ExecuteSQL { // 常规操作 private String driver; private String url; private String user; private String pass; public void initParam(String paramFile) throws Exception{ Properties properties = new Properties(); properties.load(new FileInputStream(paramFile)); driver = properties.getProperty("driver"); url = properties.getProperty("url"); user = properties.getProperty("user"); pass = properties.getProperty("pass"); } public void executeSql(String sql) throws Exception{ Class.forName(driver); try( Connection connection = DriverManager.getConnection(url, user, pass); Statement statement = connection.createStatement()){ boolean hasResultSet = statement.execute(sql); // 执行execute方法后返回boolean值 if(hasResultSet){ try( ResultSet rs = statement.getResultSet() // 获取结果集 ){ ResultSetMetaData rsmd = rs.getMetaData(); // ResultSetMetaData是用于分析结果集的元数据接口 int columnCount = rsmd.getColumnCount(); // 获取行数 while (rs.next()){ for(int i=0; i<columnCount; i++){ System.out.println(rs.getString(i+1) + "\t"); } System.out.println(); } } } else { System.out.println("该sql语句影响的记录有" + statement.getUpdateCount() + "条"); } } } public static void main(String args[]) throws Exception{ ExecuteSQL executeSQL = new ExecuteSQL(); executeSQL.initParam("mysql.ini"); System.out.println("删除表的DDL语句"); executeSQL.executeSql("drop table if exists my_test"); System.out.println("创建表的DDL语句"); executeSQL.executeSql("create table my_test" + "(id int);"); System.out.println("插入数据"); executeSQL.executeSql("insert into my_test values (1);"); System.out.println("查询所有数据"); executeSQL.executeSql("select * from my_test"); } } //执行上面的程序,得到以下运行结果 // 删除表的DDL语句 // 该sql语句影响的记录有0条 // 创建表的DDL语句 // 该sql语句影响的记录有0条 // 插入数据 // 该sql语句影响的记录有1条 // 查询所有数据 // 1
这是我看李刚编著的《疯狂Java讲义》后总结出来的。
java数据库编程(4) 使用execute方法执行SQL语句
最新推荐文章于 2024-04-27 13:29:09 发布