1.1 案例一:使用JDBC完成CRUD的操作:1.1.1 需求: 对分类管理使用JDBC进行CRUD的操作. 1.1.2 分析:1.1.2.1 技术分析: 【JDBC的概述】 Ø JDBC:Java DataBase Connectivity Java数据库的连接.

  • 是SUN公司统一提供的一套接口规范(JDBC).各个数据库生产商提供实现. Ø 驱动:两个硬件设备之间通信的桥梁. 【JDBC的开发步骤】 Ø 注册驱动: Ø 获得连接: Ø 获得执行SQL语句对象: Ø 释放资源: 1.1.2.2 步骤分析: 【步骤一】:创建一个Java项目. 【步骤二】:引入mysql的驱动包. 【步骤三】:编写代码. 【步骤四】:完成CRUD的操作: 1.1.3 代码实现:

工具类的抽取: public class JDBCUtils {

  
/**
 * 注册驱动的方法
 */
public static void loadDriver(){
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
 * 获得连接的方法
 */
public static Connection getConnection(){
Connection conn = null;
try {
loadDriver();
conn = DriverManager.getConnection("jdbc:mysql:///web_07", "root", "123");
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
/**
 * 释放资源的方法
 */
public static void release(ResultSet rs,Statement stmt,Connection conn){
if (rs != null) {
        try {
            rs.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        // 垃圾回收尽快回收对象.
        rs = null;
    }
if (stmt != null) {
        try {
            stmt.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        // 垃圾回收尽快回收对象.
        stmt = null;
    }
if (conn != null) {
        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        // 垃圾回收尽快回收对象.
        conn = null;
    }
}
public static void release(Statement stmt,Connection conn){
if (stmt != null) {
        try {
            stmt.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        // 垃圾回收尽快回收对象.
        stmt = null;
    }
if (conn != null) {
        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        // 垃圾回收尽快回收对象.
        conn = null;
    }
}
}

带有属性文件的工具类的抽取:

定义了一个属性文件:
public class JDBCUtils {
private static final String driverClass;
private static final String url;
private static final String username;
private static final String password;
  
static {
Properties properties = null;
// 读取属性文件:使用Java中Properties的对象.
try{
InputStream is = new FileInputStream("src/jdbc.properties");
properties = new Properties();
properties.load(is);
}catch(Exception e){
e.printStackTrace();
}
driverClass = properties.getProperty("driverClass");
url = properties.getProperty("url");
username = properties.getProperty("username");
password = properties.getProperty("password");
}
/**
 * 注册驱动的方法
 */
public static void loadDriver(){
try {
Class.forName(driverClass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
 * 获得连接的方法
 */
public static Connection getConnection(){
Connection conn = null;
try {
loadDriver();
conn = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
/**
 * 释放资源的方法
 */
public static void release(ResultSet rs,Statement stmt,Connection conn){
if (rs != null) {
        try {
            rs.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        // 垃圾回收尽快回收对象.
        rs = null;
    }
if (stmt != null) {
        try {
            stmt.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        // 垃圾回收尽快回收对象.
        stmt = null;
    }
if (conn != null) {
        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        // 垃圾回收尽快回收对象.
        conn = null;
    }
}
public static void release(Statement stmt,Connection conn){
if (stmt != null) {
        try {
            stmt.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        // 垃圾回收尽快回收对象.
        stmt = null;
    }
if (conn != null) {
        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        // 垃圾回收尽快回收对象.
        conn = null;
    }
}
}
参见JDBCDemo2类:

1.1.4 总结:1.1.4.1 JDBC的API: 【Connection】 Ø 创建执行SQL的对象:

Ø 进行事务管理:

【Statement】 Ø 执行SQL语句:

Ø 执行批处理:

 
【ResultSet】
Ø 获得结果集中的数据:
* getXXX(int idx);
     * select cname,cid from category;
* getXXX(String name);       
Ø 默认情况下:next();
* 正常的情况下结果集只能向下的.