package connection;
import java.sql.*;
public class resultsettest2 {
public resultsettest2(){
String driver = "org.gjt.mm.mysql.Driver";
String url = "jdbc:mysql://localhost:3306/test?user=root"
+"&password=19850209";
Connection conn = null;
String sql = "select * from testtable";
try{
Class.forName(driver);
conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery(sql);
rs.moveToInsertRow();
rs.updateString("orderId","2004070021");
rs.updateString("supplierName","供应商21");
rs.updateString("orderUser","定货员21");
rs.updateString("address","收获地址21");
rs.updateString("warehouse","仓库21");
rs.updateTimestamp("orderDate",this.transferDate("2004-7-6"));
rs.updateTimestamp("stockDate",this.transferDate("2004-7-10"));
rs.updateInt("onProcess",0);
rs.insertRow();
rs.last();
this.showCurrentRow(rs);
}catch(Exception e){
e.printStackTrace();
}
}
public void showCurrentRow(ResultSet rs) throws Exception{
String orderId = rs.getString("orderId");
String supplierName = rs.getString("supplierName");
String orderUser = rs.getString("orderUser");
String address = rs.getString("address");
String warehouse = rs.getString("warehouse");
java.sql.Timestamp orderDate = rs.getTimestamp("orderDate");
java.sql.Timestamp stockDate = rs.getTimestamp("stockDate");
int onProcess = rs.getInt("onProcess");
System.out.println(orderId+"\t"+supplierName+"\t"+orderUser+"\t"+address+"\t"+
warehouse+"\t"+orderDate+"\t"+stockDate+"\t"+onProcess);
}
public java.sql.Timestamp transferDate(String dateStr)
{
java.sql.Timestamp timeStamp = null;
try{
java.text.DateFormat dateShortFormat = java.text.DateFormat.getInstance();
timeStamp = new java.sql.Timestamp(dateShortFormat.parse(dateStr).getTime());
}catch(Exception ex){
ex.printStackTrace();
}
return timeStamp;
}
public static void main(String[] args) {
resultsettest2 resultsettest2 = new resultsettest2();
}
}
运行后的错误提示是java.text.ParseException: Unparseable date: "2004-7-6"
at java.text.DateFormat.parse(DateFormat.java:335)
at connection.resultsettest2.transferDate(resultsettest2.java:49)
at connection.resultsettest2.<init>(resultsettest2.java:21)
at connection.resultsettest2.main(resultsettest2.java:56)
java.text.ParseException: Unparseable date: "2004-7-10"
at java.text.DateFormat.parse(DateFormat.java:335)
at connection.resultsettest2.transferDate(resultsettest2.java:49)
at connection.resultsettest2.<init>(resultsettest2.java:22)
at connection.resultsettest2.main(resultsettest2.java:56)
java.sql.SQLException: Column 'orderDate' cannot be null
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2928)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2994)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:936)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1166)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1082)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1067)
at com.mysql.jdbc.UpdatableResultSet.insertRow(UpdatableResultSet.java:729)
at connection.resultsettest2.<init>(resultsettest2.java:24)
at connection.resultsettest2.main(resultsettest2.java:56)
这是为什么呀!
import java.sql.*;
public class resultsettest2 {
public resultsettest2(){
String driver = "org.gjt.mm.mysql.Driver";
String url = "jdbc:mysql://localhost:3306/test?user=root"
+"&password=19850209";
Connection conn = null;
String sql = "select * from testtable";
try{
Class.forName(driver);
conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery(sql);
rs.moveToInsertRow();
rs.updateString("orderId","2004070021");
rs.updateString("supplierName","供应商21");
rs.updateString("orderUser","定货员21");
rs.updateString("address","收获地址21");
rs.updateString("warehouse","仓库21");
rs.updateTimestamp("orderDate",this.transferDate("2004-7-6"));
rs.updateTimestamp("stockDate",this.transferDate("2004-7-10"));
rs.updateInt("onProcess",0);
rs.insertRow();
rs.last();
this.showCurrentRow(rs);
}catch(Exception e){
e.printStackTrace();
}
}
public void showCurrentRow(ResultSet rs) throws Exception{
String orderId = rs.getString("orderId");
String supplierName = rs.getString("supplierName");
String orderUser = rs.getString("orderUser");
String address = rs.getString("address");
String warehouse = rs.getString("warehouse");
java.sql.Timestamp orderDate = rs.getTimestamp("orderDate");
java.sql.Timestamp stockDate = rs.getTimestamp("stockDate");
int onProcess = rs.getInt("onProcess");
System.out.println(orderId+"\t"+supplierName+"\t"+orderUser+"\t"+address+"\t"+
warehouse+"\t"+orderDate+"\t"+stockDate+"\t"+onProcess);
}
public java.sql.Timestamp transferDate(String dateStr)
{
java.sql.Timestamp timeStamp = null;
try{
java.text.DateFormat dateShortFormat = java.text.DateFormat.getInstance();
timeStamp = new java.sql.Timestamp(dateShortFormat.parse(dateStr).getTime());
}catch(Exception ex){
ex.printStackTrace();
}
return timeStamp;
}
public static void main(String[] args) {
resultsettest2 resultsettest2 = new resultsettest2();
}
}
运行后的错误提示是java.text.ParseException: Unparseable date: "2004-7-6"
at java.text.DateFormat.parse(DateFormat.java:335)
at connection.resultsettest2.transferDate(resultsettest2.java:49)
at connection.resultsettest2.<init>(resultsettest2.java:21)
at connection.resultsettest2.main(resultsettest2.java:56)
java.text.ParseException: Unparseable date: "2004-7-10"
at java.text.DateFormat.parse(DateFormat.java:335)
at connection.resultsettest2.transferDate(resultsettest2.java:49)
at connection.resultsettest2.<init>(resultsettest2.java:22)
at connection.resultsettest2.main(resultsettest2.java:56)
java.sql.SQLException: Column 'orderDate' cannot be null
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2928)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2994)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:936)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1166)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1082)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1067)
at com.mysql.jdbc.UpdatableResultSet.insertRow(UpdatableResultSet.java:729)
at connection.resultsettest2.<init>(resultsettest2.java:24)
at connection.resultsettest2.main(resultsettest2.java:56)
这是为什么呀!
解决方案 »
- windows 的搜索功能如何实现
- 一道java算法编程题
- 求大众的智慧--关于需求分析
- 连接不上数据库
- 刚学Java没多久,不知道什么是Class Status
- 标签类中如何传递数据
- txt文本中字段间用TAB作为分隔是什么意思?
- 简单的程序,竟然有八个地方错误,1.5的SDK不兼容1.2吗?
- 新手, 请教 java.lang.NoClassDefFoundError
- 怎样在javascript中获得当前页面里的applet中发生的事件,比如鼠标单击。在脚本中给applet设置onclick函数我试过了,根本不能触发。
- JDK1.5中怎么使用Base64编码?
- 希望各位帮忙一下..搞了半天了..汗~~~
SimpleDateFormat sf = new SimpleDateFormat("yyyy-M-d");
Date date = sf.parse("2005-5-5");
String dateStr = df.format(new Date());
System.out.println(dateStr);
Date date2 = df.parse(dateStr);
System.out.println(date2);这个打出来看看,你就知道用DateFormat要传什么格式的字符串了
(like this: Wed Apr 19 00:00:00 CST 2006 parse()后,才可以成为日期)
try{
//java.text.DateFormat dateShortFormat = java.text.DateFormat.getInstance();
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-M-d");
timeStamp = new java.sql.Timestamp(sdf.parse(dateStr).getTime());
}
catch(Exception ex)
{
ex.printStackTrace();
}
return timeStamp;
try{
//java.text.DateFormat dateShortFormat = java.text.DateFormat.getInstance();
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat( "yyyy-M-d ");
timeStamp = new java.sql.Timestamp(sdf.parse(dateStr).getTime());
}
catch(Exception ex)
{
ex.printStackTrace();
}
return timeStamp;
这个方法也不行呀!结果还是一样的