51,409
社区成员
发帖
与我相关
我的任务
分享public Single getSingle(int id) throws Exception
{
Single s = null;
Connection conn = DBUtil.getConnection();
String sql ="select * from tyl.single where id=?";
PreparedStatement ptmt = conn.prepareStatement(sql);
ptmt.setInt(1, id);
ResultSet rs = ptmt.executeQuery();
while(rs.next())
{
s = new Single();
s.setQuestion(rs.getString("question"));
s.setA(rs.getString("A"));
s.setB(rs.getString("B"));
s.setC(rs.getString("C"));
s.setD(rs.getString("D"));
s.setAnswer(rs.getString("answer"));
}
DBUtil.closeConn(rs, ptmt, null, conn);
return s;
}com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.Util.getInstance(Util.java:408)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:918)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:897)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:886)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860)
at com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1187)
at com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1182)
at com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4035)
at com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4004)
at pers.Tyl.dao.SingleDao.getSingle(SingleDao.java:17)
at pers.Tyl.action.SingleAction.get(SingleAction.java:11)
at pers.Tyl.test.test.main(test.java:17)public static void main(String[] args)
{
SingleAction s = new SingleAction();
Single single = new Single();
try
{
for(int i = 0; i < 2; i++)
{
single = s.get(1);
}
System.out.println(single.getB());
} catch (Exception e)
{
e.printStackTrace();
}
}
private static Connection conn = null;删掉。。。
conn = DriverManager.getConnection(URL, USER, PASSWORD);放到getConnection()方法里
getConnection()方法里return DriverManager.getConnection(URL, USER, PASSWORD);
private static Connection conn = null;
static
{
try
{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (ClassNotFoundException e)
{
e.printStackTrace();
} catch (SQLException e)
{
e.printStackTrace();
}
}
public static Connection getConnection()
{
return conn;
}
public static void closeConn(ResultSet rs, PreparedStatement ps, Statement st, Connection con)
{
try
{
if(rs != null)
{
rs.close();
}
if(ps != null){
ps.close();
}
if(st != null){
st.close();
}
if(con != null){
con.close();
}
}
catch (Exception e)
{
e.printStackTrace();
}
}