JDBC單元測試-------Junit刪除
阿新 • • 發佈:2018-11-27
JunitTest:
package com.test.example; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import org.junit.Test; import com.test.util.JDBCUtil; /** * 使用Junit做單元測試 * <p>Title: JunitTest</p> * <p>Description: </p> * <p>Company: www.itcast.cn</p> * @version 1.0 */ public class JunitTest { // @Test // public void testQuery(){ // //查詢 // // Connection connection = null; // Statement statement = null; // ResultSet resultSet = null; // // try { // //1.獲取連線物件 // connection = JDBCUtil.getConn(); // //2.根據連線物件獲取statement // statement = connection.createStatement(); // //3.執行sql語句,得到resultSet // String sql = "select * from stu"; // resultSet = statement.executeQuery(sql); // //4.遍歷結果集 // while(resultSet.next()){ // // String name = resultSet.getString("name"); // // int age = resultSet.getInt("age"); // // System.out.println("name="+name+",age="+age); // } // } catch (Exception e) { // // TODO: handle exception // }finally { // JDBCUtil.close(connection, resultSet, statement); // } // // } // // @Test // public void testInsert(){ // //新增 // Connection connection = null; // Statement statement = null; // // try { // //1.獲取連線物件 // connection = JDBCUtil.getConn(); // //2.根據連線物件獲取statement // statement = connection.createStatement(); // //3.執行sql語句新增 // String sql = "insert into stu values(32,'AAA',NULL)"; // //影響的行數 rs>0表明操作成功,否則操作失敗 // int rs = statement.executeUpdate(sql); // if(rs > 0){ // System.out.println("新增成功"); // }else{ // System.out.println("新增失敗"); // } // } catch (Exception e) { // // TODO: handle exception // }finally { // JDBCUtil.close(connection,statement); // } // } @Test public void testDelete(){ //刪除 Connection connection = null; Statement statement = null; try { //1.獲取連線物件 connection = JDBCUtil.getConn(); //2.根據連線物件獲取statement statement = connection.createStatement(); //3.執行sql語句新增 String sql = "delete from stu where name='AAA'"; //影響的行數 rs>0表明操作成功,否則操作失敗 int rs = statement.executeUpdate(sql); if(rs > 0){ System.out.println("刪除成功"); }else{ System.out.println("刪除失敗"); } } catch (Exception e) { // TODO: handle exception }finally { JDBCUtil.close(connection,statement); } } }
JDBCUtil:
package com.test.util; import java.io.FileInputStream; 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; public class JDBCUtil { static String driverClass = null; static String url = null; static String name = null; static String password = null; //讀取jdbc.properties static{ try { //1.建立一個屬性配置物件 Properties properties = new Properties(); //1.對應檔案位於工程根目錄 //InputStream is = new FileInputStream("jdbc.properties"); //2.使用類載入器,讀取drc下的資原始檔 對應檔案位於src目錄底下 建議使用 InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties"); //2.匯入輸入流,抓取異常 properties.load(is); //3.讀取屬性 driverClass = properties.getProperty("driverClass"); url = properties.getProperty("url"); name = properties.getProperty("name"); password = properties.getProperty("password"); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } /** * 註冊驅動 建立引數 * <p>Title: close</p> * <p>Description: </p> * @param connection * @param resultSet * @param statement */ public static Connection getConn(){ Connection connection = null; //2. 建立連線 引數一: 協議 + 訪問的資料庫 , 引數二: 使用者名稱 , 引數三: 密碼。 try { //Class.forName(driverClass);可寫可不寫 //Class.forName(driverClass); connection = DriverManager.getConnection(url, name, password); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return connection; } /** * 釋放資源 * <p>Title: close</p> * <p>Description: </p> * @param connection * @param resultSet * @param statement */ public static void close(Connection connection,ResultSet resultSet,Statement statement){ closeRS(resultSet); closeSt(statement); closeConn(connection); } public static void close(Connection connection,Statement statement){ closeSt(statement); closeConn(connection); } private static void closeRS(ResultSet resultSet){ try { if(resultSet !=null){ resultSet.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { resultSet = null; } } private static void closeSt(Statement statement){ try { if(statement !=null){ statement.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { statement = null; } } private static void closeConn(Connection connection){ try { if(connection !=null){ connection.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { connection = null; } } }
jdbc.properties:
driverClass=com.mysql.jdbc.Driver
url = jdbc:mysql://localhost/jdbc
name = root
password = root
資料庫:
執行結果: