一、數據庫操做實例:java
public static void JDBCTest() throws Exception { Connection conn = null; String url = "jdbc:mysql://localhost:3306/mysql_learn?" + "user=root&password=123qwe&useUnicode=true&characterEncoding=utf8"; String selectSql = "select id,name,sex,is_del as isDel from mysql_learn.t_user where name like '%王%'"; // 1、加載驅動 try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("加載驅動成功!"); // 成功加載後,會將Driver類的實例註冊到DriverManager類中。 // 2、創建鏈接 conn = DriverManager.getConnection(url); // 3、建立Statement對象 // •要執行SQL語句,必須得到java.sql.Statement實例,Statement實例分爲如下3種類型: // 一、執行靜態SQL語句。一般經過Statement實例實現。 // 二、執行動態SQL語句。一般經過PreparedStatement實例實現。 // 三、執行數據庫存儲過程。一般經過CallableStatement實例實現。具體的實現方式: // Statement stmt = con.createStatement() ; // PreparedStatement pstmt = con.prepareStatement(sql) ; // CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") // ; Statement stmt = conn.createStatement(); // 4、執行SQL // Statement接口提供了三種執行SQL語句的方法:executeQuery 、executeUpdate和execute // 一、ResultSet executeQuery(String sqlString):執行查詢數據庫的SQL語句 // ,返回一個結果集(ResultSet)對象。 // 二、int executeUpdate(String sqlString):用於執行INSERT、UPDATE或 // DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等 // 三、execute(sqlString):用於執行返回多個結果集、多個更新計數或兩者組合的 語句。 // 具體實現的代碼: // ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ; // int rows = stmt.executeUpdate("INSERT INTO ...") ; // boolean flag = stmt.execute(String sql) ; ResultSet resultSet = stmt.executeQuery(selectSql); // 5、結果集處理 // 兩種狀況: // 一、執行更新返回的是本次操做影響到的記錄數。 // 二、執行查詢返回的結果是一個ResultSet對象。 // • ResultSet包含符合SQL語句中條件的全部行,而且它經過一套get方法提供了對這些行中數據的訪問。 // • 使用結果集(ResultSet)對象的訪問方法獲取數據: // while(rs.next()){ // String name = rs.getString("name") ; // String pass = rs.getString(1) ; // 此方法比較高效 // } // (列是從左到右編號的,而且從列1開始) List<User> users = new ArrayList(); while (resultSet.next()) { User user = new User(); resultSet.getLong(1); resultSet.getString(2); resultSet.getInt(3); resultSet.getInt(4); System.out.println("姓名:" + resultSet.getString(2));// 入若是返回的是int類型能夠用getInt() users.add(user); } // 6、關閉鏈接 操做完成之後要把全部使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲 // 明順序相反: // 一、關閉記錄集 // 二、關閉聲明 // 三、關閉鏈接對象 if (resultSet != null) { // 關閉記錄集 resultSet.close(); } if (stmt != null) { // 關閉聲明 stmt.close(); } if (conn != null) { // 關閉鏈接對象 conn.close(); } } catch (ClassNotFoundException e) { System.out.println("找不到驅動程序類 ,加載驅動失敗!"); e.printStackTrace(); } catch (SQLException e) { System.out.println("MySQL操做錯誤!"); e.printStackTrace(); } finally { conn.close(); } }
二、Mybatis數據庫操做實例:mysql
public static void myBatisTest() { try { // 一、建立讀取配置文件myBatis-config.xml的輸入流 String resource = "myBatis-config.xml"; Reader reader = Resources.getResourceAsReader(resource); // 二、建立SqlSessionFactory SqlSessionFactory factory = new SqlSessionFactoryBuilder() .build(reader); // 三、建立SQLSession SqlSession session = factory.openSession(); // 四、調用mapper文件插入數據,須要將mapper文件加載到配置文件(myBatis-config.xml)中 User user = new User(); user.setName("王靖坤"); user.setSex(1); user.setIsDel(0); session.insert("com.qding.mybatis.learn.model.User.insert", user); System.out.println(user.getId()); System.out.println(user.getName()); session.commit(); session.close(); } catch (IOException e) { e.printStackTrace(); } }