Exception in thread "main" java.lang.NullPointerException
at com.mysql.jdbc.UpdatableResultSet.syncUpdate(UpdatableResultSet.java:1550)
at com.mysql.jdbc.JDBC4UpdatableResultSet.updateNString(JDBC4UpdatableResultSet.java:311)
at com.mysql.jdbc.JDBC4UpdatableResultSet.updateNString(JDBC4UpdatableResultSet.java:345)
at cn.ailab.patentmining.dao.Write.writeToDB(Write.java:45)
at cn.ailab.patentmining.core.cluster.kmeans.CoreKmeans.coreKmeans(CoreKmeans.java:68)
at cn.ailab.patentmining.test.core.execute.main(execute.java:12)
代码:
Connection con = MysqlUtil.getInstance().getConn();
if( con == null )
System.out.println(1);
Statement stmt = (Statement)con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
if( stmt == null )
System.out.println(2);
String sql = "create table clusterResult("+
"id nvarchar(30) null, "+
"n1 nvarchar(30) null, "+
"n2 nvarchar(30) null, "+
"n3 nvarchar(30) null, "+
"n4 nvarchar(30) null, "+
"n5 nvarchar(30) null, "+
"n6 nvarchar(30) null, "+
"n7 nvarchar(30) null, "+
"primary key(id));";
//System.out.println(sql);
stmt.executeUpdate(sql);
ResultSet rs = stmt.executeQuery("select id,n1,n2,n3,n4,n5,n6,n7 from clusterResult where id is null");
if( rs == null )
System.out.println(3);
String ss;
ss = "xf";
rs.updateNString("id", ss); //出错的地方
rs.insertRow();
关于mysql链接的代码:
public class MysqlUtil {
private static MysqlUtil mysqlUtil;
private MysqlUtil() {
}
public static MysqlUtil getInstance() {
if (null == mysqlUtil) {
mysqlUtil = new MysqlUtil();
}
return mysqlUtil;
}
static {
try {
Class.forName("com.mysql.jdbc.Driver");// 加载驱动
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
// 获取连接
public Connection getConn() {
try {
return DriverManager.getConnection(MysqlPrameters.URL, MysqlPrameters.USER,
MysqlPrameters.PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
// 释放资源
public void release(ResultSet rs, Statement st, Connection conn) {
if (null != rs) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (null != st) {
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (null != conn) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
代码我是修改别人的,需要增加一个把内容写入到数据库的功能,但是出错了。求大牛解答。(前面还要利用mysql链接那个类从数据库里面读入数据,是不是对写有影响的?)
8 个解决方案
#1
ResultSet rs = stmt.executeQuery("select id,n1,n2,n3,n4,n5,n6,n7 from clusterResult where id is null");
if( rs == null )
System.out.println(3); //这里应该打印出3来了吧,说明没有查询到数据,rs为null
String ss;
ss = "xf";
rs.updateNString("id", ss); //出错的地方
rs.insertRow();
//===================================//
改成:
试试
if( rs == null )
System.out.println(3); //这里应该打印出3来了吧,说明没有查询到数据,rs为null
String ss;
ss = "xf";
rs.updateNString("id", ss); //出错的地方
rs.insertRow();
//===================================//
改成:
if(rs == null){
System.out.println(3);
return;//退出程序,不在往下执行
}
试试
#2
楼主跟下程序就行了
如果是rs为null的话,肯定就执行不了rs.updateNString方法了。
改成:
如果是rs为null的话,肯定就执行不了rs.updateNString方法了。
if( rs == null )
System.out.println(3);
String ss;
ss = "xf";
rs.updateNString("id", ss); //出错的地方
rs.insertRow();
改成:
if( rs == null ){
System.out.println(3);
}else{
rs.updateNString("id", "xf"); //出错的地方
rs.insertRow();
}
#3
select id,n1,n2,n3,n4,n5,n6,n7 from clusterResult where id is null
这个sql读出的数据是空的,不知道对下面的程序有无影响。
这个sql读出的数据是空的,不知道对下面的程序有无影响。
#4
但是rs不是为空,我加这句话
if( rs == null )
System.out.println(3);
是想看看他是否是空的,结果发现他不是空的···
if( rs == null )
System.out.println(3);
是想看看他是否是空的,结果发现他不是空的···
#5
if (rs == null){
return ;
}
return ;
}
#6
不能return啊,我想写东西进去啊
#7
不能return啊,我要写东西进数据库啊
#8
用debug调试。这么问的话也很难发现问题。
#1
ResultSet rs = stmt.executeQuery("select id,n1,n2,n3,n4,n5,n6,n7 from clusterResult where id is null");
if( rs == null )
System.out.println(3); //这里应该打印出3来了吧,说明没有查询到数据,rs为null
String ss;
ss = "xf";
rs.updateNString("id", ss); //出错的地方
rs.insertRow();
//===================================//
改成:
试试
if( rs == null )
System.out.println(3); //这里应该打印出3来了吧,说明没有查询到数据,rs为null
String ss;
ss = "xf";
rs.updateNString("id", ss); //出错的地方
rs.insertRow();
//===================================//
改成:
if(rs == null){
System.out.println(3);
return;//退出程序,不在往下执行
}
试试
#2
楼主跟下程序就行了
如果是rs为null的话,肯定就执行不了rs.updateNString方法了。
改成:
如果是rs为null的话,肯定就执行不了rs.updateNString方法了。
if( rs == null )
System.out.println(3);
String ss;
ss = "xf";
rs.updateNString("id", ss); //出错的地方
rs.insertRow();
改成:
if( rs == null ){
System.out.println(3);
}else{
rs.updateNString("id", "xf"); //出错的地方
rs.insertRow();
}
#3
select id,n1,n2,n3,n4,n5,n6,n7 from clusterResult where id is null
这个sql读出的数据是空的,不知道对下面的程序有无影响。
这个sql读出的数据是空的,不知道对下面的程序有无影响。
#4
但是rs不是为空,我加这句话
if( rs == null )
System.out.println(3);
是想看看他是否是空的,结果发现他不是空的···
if( rs == null )
System.out.println(3);
是想看看他是否是空的,结果发现他不是空的···
#5
if (rs == null){
return ;
}
return ;
}
#6
不能return啊,我想写东西进去啊
#7
不能return啊,我要写东西进数据库啊
#8
用debug调试。这么问的话也很难发现问题。