一个让我快吐血的问题(希望高手进来看看,帮忙解决下)
DBCON类
package com.huge.struts.database;
import java.io.UnsupportedEncodingException;
import java.sql.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 连接数据库类
* @author new
*
*/
public class DBCon {
static Connection con;
private static DBCon dbcon = new DBCon();
/**
* 将该类的构造方法设为私有型,防止产生第二个该类的对象
*
*/
private DBCon(){};
/**
* 得到该类的唯一对象
* @return DBCON 该类的唯一对象
*/
public static DBCon getDBCon(){
return dbcon;
}
/**
* 得到数据库的连接接口
* @return CONNECTION 数据库的接口对象
*/
public Connection getCon(){
try {
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver ");
} catch (ClassNotFoundException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
try {
con = DriverManager.getConnection( "jdbc:odbc:test ");
System.out.println( "数据库连接成功! ");
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return con;
}
/**
* 关闭打开的接口,释放资源;
*
*/
public void setClose(){
try {
this.con.close();
System.out.println( "接口关闭成功! ");
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
DBMOdel类
package com.huge.struts.database;
import java.awt.Image;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.*;
import javax.swing.ImageIcon;
/**
* 操作数据库类
* @author new
*
*/
public class DBModel {
/**
* 声明一个数据库连接对象,通道和一个结果集容器
*/
Statement st;
ResultSet rs;
Connection con;
/**
* 初使化该类的、三个属性
*
*/
public DBModel(){
con = DBCon.getDBCon().getCon();
try {
st = con.createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 更新数据库中的数据
* @param update 更新语句
* @return 更新结果提示
*/
public String setData(String update){
int i = 0;//判断更新状态
try {
i = st.executeUpdate(update);//得到更新状态
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(i==0)//根据状态进行判断
return "数据操作失败! ";
else
return "数据操作成功! ";
}
/**
/**
* 关闭结果集接口
* @param rs 要关闭的对象
*/
public void setCLRS(ResultSet rs){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 关闭数据库连接通道
* @param st 要关闭的对象
*/
public void setCLSta(){
try {
this.st.close();
this.con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
OBJECT_DB类
package com.huge.struts.db_bean;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.huge.struts.bean.User;
import com.huge.struts.database.DBModel;
public class Db_Object {
protected DBModel db ;
protected ResultSet rs ;
/**
* 表名
*/
protected String dbName;
public Db_Object(){
rs = null;
db = new DBModel();
dbName = null;
}
/**
* 插入用户数据,
* @param value 对象
* @return 状态信息
*/
public String setDb_Object(Object ob){
return null;
}
}
USER_DB类]
package com.huge.struts.db_bean;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.huge.struts.bean.User;
import com.huge.struts.database.DBModel;
public class User_Db extends Db_Object {
/**
* 复盖父类的属性值
*
*/
public User_Db(){
this.dbName = "BUser ";
}
/**
* 重写父类的方法
*/
public String setDb_Object(Object ob){
User user = (User)ob;
String update = "insert "+this.dbName+ " (UName,USex,UPwd,UNickName,UEmail,UQuest,UAnswer,UBrithday,UQQ,UAdress,UWork,UIntrod,UISPublic,URegTime,UScore,ULoginOnce,UTopicNum,UReplayNum,UGoodNum,UPID,UIsLock) values( ' "+user.getUName()+ " ', "+user.getUSex()+ ", ' "+user.getUPassword()+ " ', ' "+user.getUNickName()+ " ', ' "+user.getUEmail()+ " ', ' "+user.getUQuest()+ " ', ' "+user.getUAnswer()+ " ', ' "+user.getUBrithday()+ " ', ' "+user.getUQQ()+ " ', ' "+user.getUAddress()+ " ', ' "+user.getUWord()+ " ', ' "+user.getUIntrod()+ " ', "+user.getUISPublic()+ ", ' "+user.getURegTime()+ " ', "+user.getUScroe()+ ", "+user.getULoginOnce()+ ", "+user.getUTopicNum()+ ", "+user.getUReplayNum()+ ", "+user.getUGoodNum()+ ", "+user.getUPID()+ ", "+user.getUIsLock()+ ") ";
System.out.println(update);
String strx = update;
String str = db.setData(strx);
db.setCLSta();
return str;
}
public static void main(String arg[]){
User_Db user = new User_Db();
String update = "insert BUser (UName,USex,UPwd,UNickName,UEmail,UQuest,UAnswer,UBrithday,UQQ,UAdress,UWork,UIntrod,UISPublic,URegTime,UScore,ULoginOnce,UTopicNum,UReplayNum,UGoodNum,UPID,UIsLock) values( 'shifenghu ',1, '19881006 ', '萧格拉 ', 'fengzhonghun@163.com ', '我的QQ号是多少 ', '283527069 ', '1970年1月4日 ', '283527069 ', '北京 ', '学生 ', '我是学编程的 ',1, 'Sat Sep 08 14:53:25 CST 2007 ',0,1,0,0,0,1,0) ";
//DBModel db = new DBModel();
String x = user.setDb_Object(update);
System.out.println(x);
}
}
[解决办法]
我看了你的问题,也吐了。
[解决办法]
不吐才怪..
[解决办法]
吐。。。。。。。。。。。。。。
这么多代码我想没多少人愿意看
[解决办法]
你打个包传上来!只有代码,没有数据库,没有你的配置环境!
能帮你解决那才是奇才!
[解决办法]
哥们,你的DBModel类中构造函数初始化有这么几行——
public DBModel(){
con = DBCon.getDBCon().getCon();
try {
st = con.createStatement();
} catch (SQLException e) {
请问你的DBCon不用实例化对象就调用getDBCon()方法,可是getDBCon()方法也不是static的啊,呵呵,Be more carefully