- 论坛徽章:
- 0
|
我的类是这样的:package org.vcs.contract.dao;
import org.vcs.contract.dto.*;
import org.vcs.contract.exceptions.*;
public interface SysuserDao {
/**
* Inserts a new row in the Sysuser table.
*/
public void Insert(Sysuser dto)throws SysuserDaoException;
/**
* Updates a single row in the Sysuser table.
*/
//public void Update(Sysuser dto);
/**
* Deletes a single row in the Sysuser table.
*/
//public void Delete(Sysuser dto);
/**
* checkuser a single row in the Sysuser table.
*/
public boolean CheckSysuser(Sysuser dto)throws SysuserDaoException;
}
package org.vcs.contract.dto;
import java.util.Date;
import java.io.Serializable;
public class Sysuser implements Serializable{
/**
* This attribute maps to the column userid in the sysuser table.
*/
private String userid;
/**
* This attribute maps to the column username in the sysuser table.
*/
private String username;
/**
* This attribute maps to the column password in the sysuser table.
*/
private String password;
/**
* This attribute maps to the column lastlogin in the sysuser table.
*/
private Date lastlogin;
public void setUserid(String userid){
this.userid=userid;
}
public String getUserid(){
return this.userid;
}
public void setUsername(String username){
this.username=username;
}
public String getUsername(){
return this.username;
}
public void setPassword(String password){
this.password=password;
}
public String getPassword(){
return this.password;
}
public void setLastlogin(Date lastlogin){
this.lastlogin=lastlogin;
}
public Date getLastlogin(){
return this.lastlogin;
}
/**
* @param other
* @return boolean
*/
public boolean equals(Object other){
if(other==null){
return false;
}
if(other==this){
return true;
}
if(!(other instanceof Sysuser)){
return false;
}
final Sysuser cast = (Sysuser) other;
if(userid==null ? cast.userid!=userid:!userid.equals(cast.userid)){
return false;
}
if(username==null ? cast.username!=username:!username.equals(cast.username)){
return false;
}
if(password==null ? cast.password!=password:!password.equals(cast.password)){
return false;
}
if(lastlogin==null ? cast.lastlogin!=lastlogin:!lastlogin.equals(cast.lastlogin)){
return false;
}
return true;
}
/**
* @return int
*/
public int hashCode(){
int _hashCode=0;
if(userid==null){
_hashCode=29*_hashCode+userid.hashCode();
}
if(username==null){
_hashCode=29*_hashCode+username.hashCode();
}
if(password==null){
_hashCode=29*_hashCode+password.hashCode();
}
if(lastlogin==null){
_hashCode=29*_hashCode+lastlogin.hashCode();
}
return _hashCode;
}
/**
* @return String
*/
public String toString(){
StringBuffer ret=new StringBuffer();
ret.append("org.vcs.contract.dto.Sysuser:" ;
ret.append("userid='"+userid+"'" ;
ret.append("username='"+username+"'" ;
ret.append("password='"+password+"'" ;
ret.append("lastlogin='"+lastlogin+"'" ;
return ret.toString();
}
public Sysuser() {
}
}
package org.vcs.contract.factory;
import java.sql.Connection;
import org.vcs.contract.dao.*;
import org.vcs.contract.jdbc.*;
public class SysuserDaoFactory {
private static final SysuserDaoImpl dao = new SysuserDaoImpl();
public SysuserDaoFactory() {
}
/**
* Method 'create'
*
* @return SysuserDao
*/
public static SysuserDao create(){
return dao;
}
/**
* Method 'create'
*
* @param conn
* @return SysuserDao
*/
public static SysuserDao create(Connection conn)
{
return new SysuserDaoImpl(conn);
}
}
package org.vcs.contract.jdbc;
import java.sql.*;
public class ResourceManager
{
private static String JDBC_DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
private static String JDBC_URL = "jdbc dbc:erp";
private static String JDBC_USER = "sa";
private static String JDBC_PASSWORD = "jpzhang28";
private static Driver driver = null;
public static synchronized Connection getConnection()
throws SQLException
{
if (driver == null)
{
try
{
Class jdbcDriverClass = Class.forName( JDBC_DRIVER );
driver = (Driver) jdbcDriverClass.newInstance();
DriverManager.registerDriver( driver );
}
catch (Exception e)
{
System.out.println( "Failed to initialise JDBC driver" );
e.printStackTrace();
}
}
return DriverManager.getConnection(
JDBC_URL,
JDBC_USER,
JDBC_PASSWORD
);
}
public static void close(Connection conn)
{
try {
if (conn != null) conn.close();
}
catch (SQLException sqle)
{
sqle.printStackTrace();
}
}
public static void close(PreparedStatement stmt)
{
try {
if (stmt != null) stmt.close();
}
catch (SQLException sqle)
{
sqle.printStackTrace();
}
}
public static void close(ResultSet rs)
{
try {
if (rs != null) rs.close();
}
catch (SQLException sqle)
{
sqle.printStackTrace();
}
}
}
package org.vcs.contract.jdbc;
import org.vcs.contract.exceptions.*;
import org.vcs.contract.dao.*;
import org.vcs.contract.dto.*;
import org.vcs.contract.factory.*;
import org.vcs.contract.jdbc.*;
import java.sql.Connection;
import java.sql.Types;
import java.util.Collection;
import org.apache.log4j.Logger;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Time;
import java.util.List;
import java.util.Iterator;
import java.util.ArrayList;
public class SysuserDaoImpl implements SysuserDao{
/**
* The factory class for this DAO has two versions of the create() method - one that
takes no arguments and one that takes a Connection argument. If the Connection version
is chosen then the connection will be stored in this attribute and will be used by all
calls to this DAO, otherwise a new Connection will be allocated for each operation.
*/
protected java.sql.Connection userConn;
protected static final Logger logger = Logger.getLogger(SysuserDaoImpl.class);
/**
* All finder methods in this class use this SELECT constant to build their queries
*/
protected final String SQL_SELECT = "SELECT userid,username,password,lastlogin FROM " + getTableName() + "";
/**
* Finder methods will pass this value to the JDBC setMaxRows method
*/
private int maxRows;
/**
* SQL INSERT statement for this table
*/
protected final String SQL_INSERT = "INSERT INTO " + getTableName() + " (userid,username,password,lastlogin) VALUES ( ?, ? ,?,?)";
/**
* SQL UPDATE statement for this table
*/
protected final String SQL_UPDATE = "UPDATE " + getTableName() + " SET jfbm = ?, jfmc = ? WHERE jfbm = ?";
/**
* SQL DELETE statement for this table
*/
protected final String SQL_DELETE = "DELETE FROM " + getTableName() + " WHERE jfbm = ?";
/**
* SQL CheckSysuser statement for this table
*/
protected final String SQL_SYSUSER="SELECT username,password"+getTableName()+"WHERE username=? and password=?";
/**
* Index of column jfbm
*/
protected static final int COLUMN_JFBM = 1;
/**
* Index of column jfmc
*/
protected static final int COLUMN_JFMC = 2;
/**
* Number of columns
*/
protected static final int NUMBER_OF_COLUMNS = 2;
/**
* Index of primary-key column jfbm
*/
protected static final int PK_COLUMN_JFBM = 1;
/**
* Method 'JfDaoImpl'
*
* @param userConn
*/
public SysuserDaoImpl(final java.sql.Connection userConn)
{
this.userConn = userConn;
}
/**
* Method 'getTableName'
*
* @return String
*/
public String getTableName()
{
return "Sysuser";
}
public void Insert(Sysuser dto)throws SysuserDaoException{
long t1 = System.currentTimeMillis();
// declare variables
final boolean isConnSupplied = (userConn != null);
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
// get the user-specified connection or get a connection from the ResourceManager
conn = isConnSupplied ? userConn : ResourceManager.getConnection();
stmt = conn.prepareStatement( SQL_INSERT );
//stmt.setString(1,dto.getUserid());
stmt.setString(2, dto.getUsername());
stmt.setString(3, dto.getPassword());
stmt.setTimestamp(4, dto.getLastlogin()==null ? null : new java.sql.Timestamp( dto.getLastlogin().getTime()));
int rows=stmt.executeUpdate();
}
catch (SQLException _e) {
logger.error( "SQLException: " + _e.getMessage(), _e );
throw new SysuserDaoException( "SQLException: " + _e.getMessage(), _e );
}
catch (Exception _e) {
logger.error( "Exception: " + _e.getMessage(), _e );
throw new SysuserDaoException( "Exception: " + _e.getMessage(), _e );
}
finally {
ResourceManager.close(stmt);
if (!isConnSupplied) {
ResourceManager.close(conn);
}
}
}
public boolean CheckSysuser(Sysuser dto)throws SysuserDaoException{
// declare variables
final boolean isConnSupplied = (userConn != null);
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try{
conn = isConnSupplied ? userConn : ResourceManager.getConnection();
stmt = conn.prepareStatement(SQL_SYSUSER);
stmt.setString(2,dto.getUsername());
stmt.setString(3,dto.getPassword());
rs=stmt.executeQuery();
if(rs.next()){
return true;
}else{
return false;
}
}catch(Exception e){
e.printStackTrace();
}
return false;
}
public SysuserDaoImpl() {
}
}
package org.vcs.contract.struts.action;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.vcs.contract.struts.forms.LoginForm;
import org.apache.struts.action.Action;
import org.vcs.contract.factory.*;
import org.vcs.contract.dao.*;
import org.vcs.contract.dto.*;
public class Login extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{
LoginForm loginForm = (LoginForm) form;
// create the DAO class
SysuserDao dao = SysuserDaoFactory.create();
Sysuser dto = new Sysuser();
dto.setUsername(loginForm.getUsername());
dto.setPassword(loginForm.getPassword());
if (!dao.CheckSysuser(dto)) {
return mapping.findForward("success" ;
}
else {
return mapping.findForward("faliure" ;
}
}
}
package org.vcs.contract.struts.action;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.Action;
public class reg
extends Action {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest servletRequest,
HttpServletResponse servletResponse) {
return actionMapping.findForward("reg" ;
}
}
package org.vcs.contract.struts.action;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.vcs.contract.struts.forms.RegForm;
import org.apache.struts.action.Action;
import org.vcs.contract.factory.SysuserDaoFactory;
import org.vcs.contract.dao.*;
import org.vcs.contract.dto.*;
import org.vcs.contract.factory.*;
import java.sql.Time;
import java.sql.Timestamp;
public class SysuserSave
extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)throws Exception {
RegForm regForm = (RegForm) form;
// create the DAO class
SysuserDao dao = SysuserDaoFactory.create();
Sysuser dto = new Sysuser();
Timestamp dt=new Timestamp(1);
dto.setUsername(regForm.getUsername());
dto.setPassword(regForm.getPassword());
dto.setLastlogin(dt);
dao.Insert(dto);
return mapping.findForward("success" ;
}
}
我想输入用户名和密码进行登陆,不输入就可以进去了,我保存数据时提示这样的错误?
HTTP Status 500 -
--------------------------------------------------------------------------------
root cause
org.vcs.contract.exceptions.SysuserDaoException: SQLException: [Microsoft][ODBC SQL Server Driver]COUNT field incorrect or syntax error
at org.vcs.contract.jdbc.SysuserDaoImpl.Insert(SysuserDaoImpl.java:114)
at org.vcs.contract.struts.action.SysuserSave.execute(SysuserSave.java:30)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:82
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
Caused by: java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]COUNT field incorrect or syntax error
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:695
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
at sun.jdbc.odbc.JdbcOdbc.SQLExecute(JdbcOdbc.java:3150)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute(JdbcOdbcPreparedStatement.java:214)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeUpdate(JdbcOdbcPreparedStatement.java:136)
at org.vcs.contract.jdbc.SysuserDaoImpl.Insert(SysuserDaoImpl.java:109)
... 36 more
--------------------------------------------------------------------------------
Apache Tomcat/4.1.30
请问我要如何改呀?请大歌大姐帮帮我呀,在线等 |
|