JDBC 執行sql語句
阿新 • • 發佈:2019-02-06
package com.enhance.jdbc; import java.io.FileInputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java.util.Properties; /** * SQL語句的分類 * select 語句 * DML:(Data Manipulation Language)資料操作語言:檢索 select 和 更新insert update delete * DDL:(Data Definition Language)資料定義語言: create alter drop truncate * DCL:(Data Control Language)資料控制語言:grant revoke * 事物控制語句:commit rollback savepoint * * * executeQuery 執行 select語句 返回 resultSet * executeUpdate 執行 DML: update delete insert 返回受影響的行數,DDL: create drop alter 返回0 * execute 執行所有的sql語句 返回 boolean ,true:表示返回 resultset結果集, false:表示返回受影響的行數 * @author Bin * */ public class ExecuteDDL { private String driver; private String url; private String user; private String pass; private Connection conn; private Statement stmt; public void initParam(String paramFile) throws Exception{ Properties prop=new Properties(); prop.load(new FileInputStream(paramFile)); driver=prop.getProperty("driver"); url=prop.getProperty("url"); user=prop.getProperty("user"); pass=prop.getProperty("pass"); } public void createTable(String sql) throws Exception{ try { Class.forName(driver); conn=DriverManager.getConnection(url,user,pass); stmt=conn.createStatement(); stmt.executeUpdate(sql); } finally{ if(stmt!=null) stmt.close(); if(conn!=null) conn.close(); } } /** * 採用 executeUpdate * 執行 DML 資料操作語言 中的 更新 語句 即 insert update delete 返回受影響的行數 * 執行 DDL 資料定義語言 create alter drop truncate 返回 "0" * @param sql * @return * @throws Exception */ public int executeDmlAndDdl(String sql)throws Exception{ try { Class.forName(driver); conn=DriverManager.getConnection(url,user,pass); stmt=conn.createStatement(); return stmt.executeUpdate(sql); } finally{ if(stmt!=null) stmt.close(); if(conn!=null) conn.close(); } } public static void main(String[] args) throws Exception { ExecuteDDL ed=new ExecuteDDL(); //System.out.println(System.getProperty("user.dir")); ed.initParam("src/mysql.ini"); /*ed.createTable("create table jdbc_test" + "( jdbc_id int auto_increment primary key," + "jdbc_name varchar(255)," + "jdbc_desc text);");*/ //System.out.println(ed.executeDmlAndDdl("select host,user,password from user")); ed.executeDmlAndDdl("create table img_table" + "(img_id int auto_increment primary key," + "img_name varchar(255)," + "img_data mediumblob);"); System.out.println("---------建表成功-------"); } }