A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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 代码实现:
[AppleScript] 纯文本查看 复制代码
工具类的抽取:
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;
    }
}
}
 
带有属性文件的工具类的抽取:
[AppleScript] 纯文本查看 复制代码
定义了一个属性文件:
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();
* 正常的情况下结果集只能向下的.


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马