import java.sql.*; //导入java.sql包中的所有类
/**
@author Liuchundong
@2011.07.10
*/
/*************数据库操作功能:封装了访问数据库的相关操作。***********/
public class DataBaseAccess
{
public Connection conn = null; // 声明Connect对象的实例
public Statement stmt = null; // 声明Statement对象的实例
public ResultSet rs = null; // 声明ResultSet对象的实例
/*
*功能:执行数据连接
* */
public Connection getConnection()
{
//加载不同的驱动,连接数据库,如果要连接其他数据库,自行修改
String Driver="com.mysql.jdbc.Driver"; //驱动程序
String Url="jdbc:mysql://localhost:3306/test";//连接URL,db_name为数据库名
String Username="root"; //用户名
String Password="root"; //用户密码
try{
Class.forName(Driver).newInstance();
System.out.println("驱动接口程序连接成功!^_^");//连接成功
}catch(Exception e)
{
System.out.println("驱动接口程序连接失败!@_@"+Driver);//连接失败
e.printStackTrace();
}
try{
conn=DriverManager.getConnection(Url,Username,Password);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
if(!conn.isClosed()){
System.out.println("数据库连接成功!^_^");
}
}catch(SQLException ex)
{
System.out.println("数据库连接失败!@_@");
ex.printStackTrace();
}
return conn; //返回数据库连接对象
}
/*
* 功能:执行查询语句
*/
public ResultSet Query(String sql)
{
try
{ // 捕捉异常
conn = getConnection(); // 调用getConnection()方法构造Connection对象的一个实例
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);//执行SQL语句,并返回一个ResultSet对象rs
}
catch (SQLException ex)
{
System.err.println("This Query has failed!");
System.err.println(ex.getMessage()); // 输出异常信息
}
return rs; //返回结果集对象
}
/*
* 功能:执行更新操作,增、删、改用Statement.executeUpdate来完成,
* 返回整数(匹配的记录数),这类操作相对简单。
*/
public int Update(String sql)
{
int result = 0; // 定义保存返回值的变量
try
{ // 捕捉异常
conn = getConnection(); // 调用getConnection()方法构造Connection对象的一个实例
stmt = conn.createStatement();
result = stmt.executeUpdate(sql); // 执行更新操作
System.out.println("This Update has executed successfully!");
}
catch (SQLException ex)
{
result = 0; // 将保存返回值的变量赋值为0
System.out.println("This Update has failed!");
System.err.println(ex.getMessage()); // 输出异常信息
}
return result; // 返回保存返回值的变量
}
/*
* 功能:关闭数据库的连接
*/
public void close()
{
try
{ // 捕捉异常
if (rs != null)
{ // 当ResultSet对象的实例rs不为空时
rs.close(); // 关闭ResultSet对象
}
if (stmt != null)
{ // 当Statement对象的实例stmt不为空时
stmt.close(); // 关闭Statement对象
}
if (conn != null)
{ // 当Connection对象的实例conn不为空时
conn.close(); // 关闭Connection对象
}
}
catch (Exception e)
{
e.printStackTrace(System.err); // 输出异常信息
}
}
}
声明:以上只是个基本的数据库操作封装,一般情况的调用这个封装去连接数据库时,要改相应的数据库连接驱动包和驱动名。数据库基本操作是增、删、改、查,其中又主要可以分成两类:一类是查询,不改变数据库里面数据,另一类是更新(包括增、删、改),程序中向改方法传入你想进行的数据操作就行,不过一定要注意SQL语句的正确!
通过上面程序进行数据基本的查询,更新操作没有问题,但要进行更复杂的操作,则需要自己再扩展代码!