標籤:
1、資料庫操作執行個體:
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 ‘%王%‘";// 一、載入驅動try {Class.forName("com.mysql.jdbc.Driver");System.out.println("載入驅動成功!");// 成功載入後,會將Driver類的執行個體註冊到DriverManager類中。// 二、建立串連conn = DriverManager.getConnection(url);// 三、建立Statement對象// ?要執行SQL語句,必須獲得java.sql.Statement執行個體,Statement執行個體分為以下3種類型:// 1、執行靜態SQL語句。通常通過Statement執行個體實現。// 2、執行動態SQL語句。通常通過PreparedStatement執行個體實現。// 3、執行資料庫預存程序。通常通過CallableStatement執行個體實現。具體的實現方式:// Statement stmt = con.createStatement() ;// PreparedStatement pstmt = con.prepareStatement(sql) ;// CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}")// ;Statement stmt = conn.createStatement();// 四、執行SQL// Statement介面提供了三種執行SQL語句的方法:executeQuery 、executeUpdate和execute// 1、ResultSet executeQuery(String sqlString):執行查詢資料庫的SQL語句// ,返回一個結果集(ResultSet)對象。// 2、int executeUpdate(String sqlString):用於執行INSERT、UPDATE或// DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等// 3、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);// 五、結果集處理// 兩種情況:// 1、執行更新返回的是本次操作影響到的記錄數。// 2、執行查詢返回的結果是一個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);}// 六、關閉串連 操作完成以後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲// 明順序相反:// 1、關閉記錄集// 2、關閉聲明// 3、關閉連線物件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(); }}
2、Mybatis資料庫操作執行個體:
public static void myBatisTest() {try {// 1、建立讀取設定檔myBatis-config.xml的輸入資料流String resource = "myBatis-config.xml";Reader reader = Resources.getResourceAsReader(resource);// 2、建立SqlSessionFactorySqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);// 3、建立SQLSessionSqlSession session = factory.openSession();// 4、調用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();}}
Mybatis、JDBC、Habernate、Mybatis+Spring的Mysql資料庫操作執行個體