使用Statement執行DML和DQL語句
阿新 • • 發佈:2018-11-23
import com.loaderman.util.JdbcUtil; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import org.junit.Test; /** * 使用Statement執行DML語句 * */ public class Demo2 { private String url = "jdbc:mysql://localhost:3306/test";private String user = "root"; private String password = "root"; /** * 增加 */ @Test public void testInsert(){ Connection conn = null; Statement stmt = null; try { //通過工具類獲取連線物件 conn = JdbcUtil.getConnection();//3.建立Statement物件 stmt = conn.createStatement(); //4.sql語句 String sql = "INSERT INTO student(NAME,gender) VALUES('李四','女')"; //5.執行sql int count = stmt.executeUpdate(sql); System.out.println("影響了"+count+"行"); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } finally{ //關閉資源 /*if(stmt!=null) try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } if(conn!=null) try { conn.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); }*/ JdbcUtil.close(conn, stmt); } } /** * 修改 */ @Test public void testUpdate(){ Connection conn = null; Statement stmt = null; //模擬使用者輸入 String name = "陳六"; int id = 3; try { /*//1.註冊驅動 Class.forName("com.mysql.jdbc.Driver"); //2.獲取連線物件 conn = DriverManager.getConnection(url, user, password);*/ //通過工具類獲取連線物件 conn = JdbcUtil.getConnection(); //3.建立Statement物件 stmt = conn.createStatement(); //4.sql語句 String sql = "UPDATE student SET NAME='"+name+"' WHERE id="+id+""; System.out.println(sql); //5.執行sql int count = stmt.executeUpdate(sql); System.out.println("影響了"+count+"行"); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } finally{ //關閉資源 /*if(stmt!=null) try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } if(conn!=null) try { conn.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); }*/ JdbcUtil.close(conn, stmt); } } /** * 刪除 */ @Test public void testDelete(){ Connection conn = null; Statement stmt = null; //模擬使用者輸入 int id = 3; try { /*//1.註冊驅動 Class.forName("com.mysql.jdbc.Driver"); //2.獲取連線物件 conn = DriverManager.getConnection(url, user, password);*/ //通過工具類獲取連線物件 conn = JdbcUtil.getConnection(); //3.建立Statement物件 stmt = conn.createStatement(); //4.sql語句 String sql = "DELETE FROM student WHERE id="+id+""; System.out.println(sql); //5.執行sql int count = stmt.executeUpdate(sql); System.out.println("影響了"+count+"行"); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } finally{ //關閉資源 /*if(stmt!=null) try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } if(conn!=null) try { conn.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); }*/ JdbcUtil.close(conn, stmt); } } }
import com.loaderman.util.JdbcUtil; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import org.junit.Test; /** * 使用Statement執行DQL語句(查詢操作) * */ public class Demo3 { @Test public void test1(){ Connection conn = null; Statement stmt = null; try{ //獲取連線 conn = JdbcUtil.getConnection(); //建立Statement stmt = conn.createStatement(); //準備sql String sql = "SELECT * FROM student"; //執行sql ResultSet rs = stmt.executeQuery(sql); //移動游標 /*boolean flag = rs.next(); flag = rs.next(); flag = rs.next(); if(flag){ //取出列值 //索引 int id = rs.getInt(1); String name = rs.getString(2); String gender = rs.getString(3); System.out.println(id+","+name+","+gender); //列名稱 int id = rs.getInt("id"); String name = rs.getString("name"); String gender = rs.getString("gender"); System.out.println(id+","+name+","+gender); }*/ //遍歷結果 while(rs.next()){ int id = rs.getInt("id"); String name = rs.getString("name"); String gender = rs.getString("gender"); System.out.println(id+","+name+","+gender); } }catch(Exception e){ e.printStackTrace(); throw new RuntimeException(e); }finally{ JdbcUtil.close(conn, stmt); } } }
import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; /** * jdbc工具類 * */ public class JdbcUtil { private static String url = null; private static String user = null; private static String password = null; private static String driverClass = null; /** * 靜態程式碼塊中(只加載一次) */ static{ try { //讀取db.properties檔案 Properties props = new Properties(); /** * . 代表java命令執行的目錄 * 在java專案下,. java命令的執行目錄從專案的根目錄開始 * 在web專案下, . java命令的而執行目錄從tomcat/bin目錄開始 * 所以不能使用點. */ //FileInputStream in = new FileInputStream("./src/db.properties"); /** * 使用類路徑的讀取方式 * / : 斜槓表示classpath的根目錄 * 在java專案下,classpath的根目錄從bin目錄開始 * 在web專案下,classpath的根目錄從WEB-INF/classes目錄開始 */ InputStream in = JdbcUtil.class.getResourceAsStream("/db.properties"); //載入檔案 props.load(in); //讀取資訊 url = props.getProperty("url"); user = props.getProperty("user"); password = props.getProperty("password"); driverClass = props.getProperty("driverClass"); //註冊驅動程式 Class.forName(driverClass); } catch (Exception e) { e.printStackTrace(); System.out.println("驅程程式註冊出錯"); } } /** * 抽取獲取連線物件的方法 */ public static Connection getConnection(){ try { Connection conn = DriverManager.getConnection(url, user, password); return conn; } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } } /** * 釋放資源的方法 */ public static void close(Connection conn,Statement stmt){ if(stmt!=null){ try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } } if(conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } } } public static void close(Connection conn,Statement stmt,ResultSet rs){ if(rs!=null) try { rs.close(); } catch (SQLException e1) { e1.printStackTrace(); throw new RuntimeException(e1); } if(stmt!=null){ try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } } if(conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } } } }
db.properties
url=jdbc:mysql://localhost:3306/test user=root password=root driverClass=com.mysql.jdbc.Driver