【操作数据库的模板方法】
关于用操作数据库模板方法如下代码:
[java]
jdbc.properties
url=jdbc:mysql://localhost:3306/cfms
user=root
password=123456
driverClass=com.mysql.jdbc.Driver
package cn.edu.hactcm.base.utils;
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;
/**
[java] view plaincopyprint?
* CFMS :Computer files management system
* version :1.0 2013-2-19 上午08:44:27
*
* 操作JDBC的工具类
*/
public class JdbcUtils {
private JdbcUtils() {
}
private static String url;
private static String user;
private static String password;
/*
* 静态代码块
*/
static {
try {
// 读取配置文件,通过类加载器的方式读取属性文件
InputStream in = JdbcUtils.class.getClassLoader()
.getResourceAsStream("jdbc.properties");
Properties prop = new Properties();
prop.load(in);
url = prop.getProperty("url");
user = prop.getProperty("user");
password = prop.getProperty("password");
// 注册驱动
String driverClass = prop.getProperty("driverClass");
Class.forName(driverClass);
in.close();
in = null;
} catch (Exception e) {
throw new ExceptionInInitializerError(e);
}
}
/**
* @return 获取与指定数据库的连接
* @throws SQLException
*/
public static Connection getConnection() throws SQLException {
// url,user,password可以直接使用是因为上面定义成静态的了。
Connection connection = DriverManager
.getConnection(url, user, password);
return connection;
}
/**
* @param rs :结果集
* @param stmt:在程序中将使用PrepareStatement,其中Statement是其父类
* @param 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;
}
}
}
package cn.edu.hactcm.base.dao;
import java.sql.ResultSet;
/**
* CFMS :Computer files management system
* version :1.0 2013-2-19 上午10:02:31
*/
public interface ResultSetHandler {
//处理结果集的方法
public Object handle(ResultSet rs);
}
/**
*
*/
package cn.edu.hactcm.base.dao.impl;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import cn.edu.hactcm.base.dao.ResultSetHandler;
/**
* CFMS :Computer files management system
* version :1.0 2013-2-19 上午10:38:37
*
* 取出第一行的所有记录存入一个Object数组
*/
@SuppressWarnings( { "unchecked", "unused" })
public class ArrayHandler implements ResultSetHandler {
private Class clazz;
public ArrayHandler(Class clazz) {
this.clazz = clazz;
}
public Object handle(ResultSet rs) {
try {
if (rs.next()) {
// 指向了第一行的记录
// 获得元数据
ResultSetMetaData metaData = rs.getMetaData();
// 获得用于查询的sql中的字段列数
int count = metaData.getColumnCount();
// 创建数组
更多精彩教程请关注: 大白菜官网u盘装系统