JDBC連線資料庫及PreparedStatement詳解
阿新 • • 發佈:2019-01-05
直接上程式碼
package jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class MyTest { public static void main(String args[]) { Connection con = null; try { // 註冊JDBC驅動,JAVA1.5以後 JDBC自動載入驅動了 所以這句程式碼可以省略; Class.forName("com.mysql.jdbc.Driver").newInstance(); // 提供地址使用者名稱密碼並獲得連線物件 con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root", ""); if (!con.isClosed()) // 連線成功提示 System.out.println("Successfully connected to MySQL server using TCP/IP..."); // 有Connection物件建立PreparedStatement PreparedStatement ps= con.prepareStatement("select * from orderitem o where o.itemid >?"); // 設定引數,引數索引位置是從1開始(Hibernate引數索引位置是從0開始) ps.setInt(1, 10);//過濾itemid大於10的記錄 ResultSet rs = ps.executeQuery(); // 迴圈讀取結果集的每一行的每一列 while (rs.next()) { // 列印資料 System.out.print(rs.getString("itemid")+";"); System.out.print(rs.getString("count")+";"); System.out.print(rs.getString("subtotal")+";"); System.out.print(rs.getString("pid")+";"); System.out.println(rs.getString("oid")+";"); } // 關閉 con.close(); ps.close(); } catch(Exception e) { System.err.println("Exception: " + e.getMessage()); } } }
ResultSet. getMetaData() 獲得代表ResultSet物件元資料的ResultSetMetaData物件。
/** * @Method: testParameterMetaData * @Description: 獲取引數元資訊 * @Anthor:孤傲蒼狼 * * @throws SQLException */ @Test public void testParameterMetaData() throws SQLException { Connection conn = JdbcUtils.getConnection(); String sql = "select * from user wherer name=? and password=?"; //將SQL預編譯一下 PreparedStatement st = conn.prepareStatement(sql); ParameterMetaData pm = st.getParameterMetaData(); //getParameterCount() 獲得指定引數的個數 System.out.println(pm.getParameterCount()); //getParameterType(int param):獲得指定引數的sql型別,MySQL資料庫驅動不支援 System.out.println(pm.getParameterType(1)); JdbcUtils.release(conn, null, null); }
參考文章:
Statement
深入 理解 Statement 和 PreparedStatement