JDBC單元測試(一)-------main方法查詢
阿新 • • 發佈:2018-11-27
新建java工程,新增mysql的jar包
MainTest:
package com.test.example; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import com.test.util.JDBCUtil; /** * 使用main方法執行單元測試 * <p>Title: MainTest</p> * <p>Description: </p> * <p>Company: www.itcast.cn</p> * @version 1.0 */ public class MainTest { public static void main(String[] args) { //查詢 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); } } }
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); } 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
資料庫:
執行結果: