Java 使用execute方法執行Sql語句。
mysql.ini是一個設定檔。配置內容可以看上一篇。
class ExecuteSql {private String driver;private String url;private String user;private String pass;Connection conn;Statement stmt;ResultSet rs;public void initParam(String paramFile) throws Exception {Properties props = new Properties();props.load(new FileInputStream(paramFile));driver = props.getProperty("driver");url = props.getProperty("url");user = props.getProperty("user");pass = props.getProperty("pass");}public void executeSql(String sql) throws Exception{try {Class.forName(driver);conn = DriverManager.getConnection(url,user,pass);stmt = conn.createStatement();boolean hasResultSet = stmt.execute(sql);if (hasResultSet) {rs = stmt.getResultSet();java.sql.ResultSetMetaData rsmd = rs.getMetaData();int columnCount = rsmd.getColumnCount();while (rs.next()) {for (int i = 0; i < columnCount; i++) {System.out.print(rs.getString(i+1) + "\t");}System.out.println();}}else {System.out.println("改SQL語句影響的記錄有" + stmt.getUpdateCount() + "條");}} finally{if (rs != null) {rs.close();}if (stmt != null) {stmt.close();}if (conn != null) {conn.close();}}}/** * @param args * @throws Exception */public static void main(String[] args) throws Exception {// TODO Auto-generated method stubExecuteDDL ed = new ExecuteDDL();ed.initParam("src/mysql.ini");ed.executeSql("drop table if exists school"); //(insertSql);ed.executeSql("create table school(id int, name varchar(50), addr varchar(50))");ed.executeSql("insert into school values(1, 'No1', 'BeiJing')");ed.executeSql("select * from school");}}
執行結果為: