package util;
/*
* date: 2004-11-17
* author:zhangyu6050;
* todo: 一个数据库封装类,作用是:
* 获取数据库连接
* 通过接受的sql语句选择数据库并且返回结果
* 期间要作出以下判断:1 如果sql用来查询:、、、、
* 2 如果sql用来update:、、、、
*
* bugs:
* 改进:实现接口:sqlquery;
* 主要继承一些比如error,success等的常量!
*/
//package util;
import java.util.list;
import java.sql.*;
public class mysql {
private string dirvername=configs.dirvername;
private string url=configs.url;
private string password=configs.password;
private string username=configs.username;
private connection conn = null;
private statement stmt = null;
private preparedstatement prepstmt = null;
public mysql(){
try {
getdatasource();
stmt=conn.createstatement();
} catch (sqlexception e) {
system.out.print("conn.createstatement()发生错误!");
e.printstacktrace();
}
}
public mysql(string query){
init(query);
}
protected void init(string aqurey){
try {
stmt=conn.createstatement();
preparestatement(aqurey);
} catch (sqlexception e) {
system.out.print("conn.createstatement()发生错误!");
e.printstacktrace();
}
}
//这个方法是准备创建一个mysql对象后再调用,但我发现最好用单态从新设计!!!!改成静态方法
//设置?为变量的值--string类型
public void setstring(int index, string value) throws sqlexception {
prepstmt.setstring(index, value);
}
public void preparestatement(string sql) throws sqlexception {
prepstmt = conn.preparestatement(sql);
}
public void close() throws sqlexception{
if(prepstmt!=null) prepstmt.close();
if(stmt!=null) prepstmt.close();
}
public resultset executequery() throws sqlexception {
if (prepstmt != null) {
return prepstmt.executequery();
} else
return null;
}
public void getdatasource(){
try {
class.forname(dirvername);
conn=drivermanager.getconnection(url,username,password);
} catch (exception e) {
//连接发生错误!
system.out.print("连接发生错误!");
e.printstacktrace();
}
}
}
闽公网安备 35060202000074号