经过测试,在我本地是正常的。
你报错在30行,javalangNullPointerException
空指针异常,conn根本就不存在,揣测一下,你应该是没有加载mysql的驱动包!
可能是自身携带的模组的背包数量太多,或者是里面物品太多等导致的,一般重启电脑再开启游戏就可以了,平时只要注意这方面不要携带太多模组中的背包等,特别是关闭游戏的时候,避免再次开启游戏时,出现数据异常。
在打开数据库之前就先关闭数据库一次或在catch里面d出消息框之前就关闭数据库的连接。我想这两种足以解决你的问题!我以前就是这样做的。
连接为关闭主要是打开发生冲突。有可能是里面用到了Time控件,你的Time在定时打开数据库而导致
JDBC技术实战你用conn创建PreparedStatement,却位初始化conn,也就是你每次要查询的时候,请先调用init方法,如
public static int addUpdDel(String sql) {int i = 0;
try {
init(); //先创建链接 conn
PreparedStatement ps = connprepareStatement(sql);
i = psexecuteUpdate();
} catch (SQLException e) {
Systemoutprintln("sql数据库增删改异常");
eprintStackTrace();
}
你说的那个可能性很大。
我怀疑是你读取出来的SqlDataReader对象没有关掉。
或许你关掉了,但没有和数据库的连接相关联。
这个的意思就是,如果关联了,你关闭SqlDataReader对象,自然数据库的连接也会随着关闭。
如果没有关联,那就说不准了。
对于DataSet和Datatable这些数据源的填充,如果你在执行数据库 *** 作的代码中确定已经关闭了数据库连接,那就没什么问题了。因为这些数据是断开式的连接,也就是把数据从数据库中读取出来后,就可以立即关闭数据库联接的,这个和上面的数据集不一样。
因此你好好检察下DataReaer这类的数据集是否关联了关闭数据库连接。
对于断开式的数据集,你就看下在执行数据库的时候是否关闭了数据库连接!
参考代码:
protected void RunProc(string procName, out SqlDataReader dr)
{
///创建SqlCommand对象
///CreateSqlCommand是我自己写的方法,并非系统提供
SqlCommand cmd = CreateSqlCommand(procName, null);
if (cmd == null)
{
dr = null;
return;
}
try
{ ///读取数据
///这里是关键是CommandBehavior枚举,重点了解这个
///CommandBehaviorCloseConnection这个枚举值也是系统默认的
dr = cmdExecuteReader(CommandBehaviorCloseConnection);
}
catch (Exception ex)
{
dr = null;
throw new Exception(exMessage, ex);
}
}
如果还有什么不清楚的,希望继续交流!!
如果你只是获取数据填充界面用的话,可以查询cursor之后,循环游标把里面的放到list<bean>里面,然后关闭数据库,你就可以使用你的数据,又可以关闭cursor了;
以上就是关于连接数据库出现异常该怎么解决全部的内容,包括:连接数据库出现异常该怎么解决、我的世界数据库背包数据异常、怎样解决在vb中数据库打开连接未关闭的异常等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)