java JDBC
阿新 • • 發佈:2020-08-25
public class JdbcApplication { public static void main(String[] args) { /* 1、DriverManager 1、註冊驅動:void registerDriver(java.sql.Driver) * Class.forName("com.mysql.cj.jdbc.Driver"):jvm載入com.mysql.cj.jdbc.Driver類, 執行靜態程式碼塊,靜態程式碼塊中會呼叫DriverManager的registerDriver方法,從而註冊驅動。 * Class.forName("com.mysql.cj.jdbc.Driver")可以省略:DriverManager會讀取META-INF /services/java.sql.Driver檔案,從而獲取驅動類。 2、獲取資料庫連線:Connection getConnection(String,String,String) 2、Connection 1、獲取執行sql的物件 * Statement createStatement():存在sql注入問題 * PreparedStatement prepareStatement(String):解決sql注入問題 引數:為sql語句字串,[?]為佔位符 2、管理事務 * void setAutoCommit(boolean):引數:true表示關閉事務,false表示開啟事務 * void commit():提交事務 * void rollback():事務回滾 3、Statement 1、執行sql * boolean execute(String):執行任意sql語句 * int executeUpdate(String):執行增刪改語句;返回值:資料行變化條數 * ResultSet executeQuery(String):執行查語句 4、ResultSet 1、boolean next():遊標向下移動一行 2、xxx getXxx(int/String): xxx:欄位的資料型別(String、int...) 引數:int:欄位的索引(從1開始);String:欄位的名稱 5、PreparedStatement 1、void setXxx(int,xxx): xxx:佔位符?的資料型別(String、int...) 引數1:佔位符?的索引(從1開始) 引數2:佔位符?的值 2、執行sql ResultSet executeQuery():查操作 int executeUpdate():增刪改操作 獲取src路徑下的檔案的方式: ClassLoader classLoader = JdbcApplication.class.getClassLoader(); URL url = classLoader.getResource("jdbc.properties"); String path = url.getPath();*/ Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { //連線資料庫 Class.forName("com.mysql.cj.jdbc.Driver"); connection = DriverManager.getConnection( "jdbc:mysql://172.21.22.5:3306/studymysql", "root", "123456"); //開啟事務 connection.setAutoCommit(false); //定義sql,建立statement,執行sql String sql = "select * from student where age > ?"; preparedStatement = connection.prepareStatement(sql); preparedStatement.setInt(1, 20); resultSet = preparedStatement.executeQuery(); //事務提交 connection.commit(); //處理 while (resultSet.next()) { int id = resultSet.getInt(1); String name = resultSet.getString(2); int age = resultSet.getInt(3); System.out.println("{id:" + id + ",name:" + name + ",age:" + age + "}"); } } catch (Exception throwables) { //事務回滾 if (connection != null) { try { connection.rollback(); } catch (SQLException e) { e.printStackTrace(); } } throwables.printStackTrace(); } finally { //關閉資源 if (resultSet != null) { try { resultSet.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if (preparedStatement != null) { try { preparedStatement.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if (connection != null) { try { connection.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } } } }