向sqj数据库中插入一行数据。 但是数据库里却出现 数据完全相同的二行。请问代码是哪里错了呢??OrderNumber和AdminNumber 是2个textfield 的名字。就是将里面的数据插入数据库StockIn表中。action类////////////////////////////////////////////////////////////////////////////////////////////////
public class Stockinput extends ActionSupport {
@Override
public String execute() throws Exception {msg = "用户名或者密码错误";
// TODO Auto-generated method stub
if (isInvalid(OrderNumber) || isInvalid(AdminNumber)
{
msg = "入库信息不能为空!";
return INPUT;
}
String ps = new InputDAO().addInput(OrderNumber,AdminNumber);
return SUCCESS;
}
private boolean isInvalid(String value) {
return (value == null || value.length() == 0);
}
private String msg = "您好";
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
private String OrderNumber;
private String AdminNumber;
public String getOrderNumber() {
return OrderNumber;
}
public void setOrderNumber(String OrderNumber) {
this.OrderNumber = OrderNumber;
}
public String getAdminNumber() {
return AdminNumber;
}
public void setAdminNumber(String AdminNumber) {
this.AdminNumber = AdminNumber;
}DAO类///////////////////////////////////////////////////////////////////////////////////////////////
public String addInput(String OrderNumber, String AdminNumber) {
String sql = "INSERT INTO StockIn(OrderNumber,AdminNumber)VALUES(?,?)";
PreparedStatement pstat = null;
Connection conn = new DBHelper().getConn();
try {
pstat = conn.prepareStatement(sql);
pstat.setString(1,OrderNumber);
pstat.setString(2,AdminNumber);
pstat.execute();
} catch (SQLException e) {
// TODO Auto-generated catch block
return "false";
} finally {
try {
if (pstat != null)
pstat.close();
if (conn != null)
conn.close();
} catch (SQLException e) {e.printStackTrace();}
}
return "true";
}
public static void main(String[] args) {
InputDAO inputDAO = new InputDAO();
System.out.println("RegisterDAO.main()" + inputDAO.addInput("pp","pp");
}
public class Stockinput extends ActionSupport {
@Override
public String execute() throws Exception {msg = "用户名或者密码错误";
// TODO Auto-generated method stub
if (isInvalid(OrderNumber) || isInvalid(AdminNumber)
{
msg = "入库信息不能为空!";
return INPUT;
}
String ps = new InputDAO().addInput(OrderNumber,AdminNumber);
return SUCCESS;
}
private boolean isInvalid(String value) {
return (value == null || value.length() == 0);
}
private String msg = "您好";
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
private String OrderNumber;
private String AdminNumber;
public String getOrderNumber() {
return OrderNumber;
}
public void setOrderNumber(String OrderNumber) {
this.OrderNumber = OrderNumber;
}
public String getAdminNumber() {
return AdminNumber;
}
public void setAdminNumber(String AdminNumber) {
this.AdminNumber = AdminNumber;
}DAO类///////////////////////////////////////////////////////////////////////////////////////////////
public String addInput(String OrderNumber, String AdminNumber) {
String sql = "INSERT INTO StockIn(OrderNumber,AdminNumber)VALUES(?,?)";
PreparedStatement pstat = null;
Connection conn = new DBHelper().getConn();
try {
pstat = conn.prepareStatement(sql);
pstat.setString(1,OrderNumber);
pstat.setString(2,AdminNumber);
pstat.execute();
} catch (SQLException e) {
// TODO Auto-generated catch block
return "false";
} finally {
try {
if (pstat != null)
pstat.close();
if (conn != null)
conn.close();
} catch (SQLException e) {e.printStackTrace();}
}
return "true";
}
public static void main(String[] args) {
InputDAO inputDAO = new InputDAO();
System.out.println("RegisterDAO.main()" + inputDAO.addInput("pp","pp");
}
解决方案 »
- ibatis some properties were not set
- 请教:MAVEN编译时的错误
- struts中的DynaValidatorActionForm的问题
- 有没朋友推荐下工作
- 为什么我的struts2中的标签没有datepicker呢??
- 急JBOSS3.2.6使用JMS,报OutOfMemory,unable to create new native thread 日志如下
- 不好意思 请问Struts hibernate Spring三者是什么意思 有什么区别和相同,要都学吗?
- 求jbuilder+struts开发实例!!!!!请大家帮帮忙啊!!
- jms客户端如何设才能找到服务器
- Java 对外接口开发安全如何处理
- prototype ajax怎么返回List
- 面试问题:JAVA EE 除了做网站(包括手机上网)还有什么运用?
你的这种情况我只在 用AJAX的时候测出来过(异步)
主键怎么能重复呢?这(相同的行数据)在2000后期版本和oracle中即是不设置也不可能。别的数据库就不好说了。
String ps = new InputDAO().addInput(OrderNumber,AdminNumber);
System.out.println("RegisterDAO.main()" + inputDAO.addInput("pp","pp");
这2句都执行一次的话 是插入了2个数据吧
17楼正解,你调用了两次addInput方法。
System.out.println("RegisterDAO.main()" + inputDAO.addInput("pp","pp"); 下面一句注释掉看看