该贴出来的都贴出来了,我已经测试过,直接用Class.forName()连接数据库是成功的,没报错,那3个文件也加载到lib中了
但是出现下面错误,小弟我刚学jsp,希望高人指点一二,在线等,无限感谢。。
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.hibernate.exception.GenericJDBCException: could not execute query
org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
org.hibernate.loader.Loader.doList(Loader.java:2223)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
org.hibernate.loader.Loader.list(Loader.java:2099)
org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
holy.UserDAO.findByProperty(UserDAO.java:83)
holy.loginServlet.doPost(loginServlet.java:33)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]在关键字 'user' 附近有语法错误。
com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown Source)
com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
com.microsoft.jdbc.base.BasePreparedStatement.postImplExecute(Unknown Source)
com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
com.microsoft.jdbc.base.BasePreparedStatement.executeQuery(Unknown Source)
org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
org.hibernate.loader.Loader.doQuery(Loader.java:674)
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
org.hibernate.loader.Loader.doList(Loader.java:2220)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
org.hibernate.loader.Loader.list(Loader.java:2099)
org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
holy.UserDAO.findByProperty(UserDAO.java:83)
holy.loginServlet.doPost(loginServlet.java:33)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)--------------------------------------------------------------------------------------------------------
-----------------------------loginServlet.java------------------------------------------------------
package holy;import java.io.IOException;
import java.util.List;import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;public class loginServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

doPost(request,response);

} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

RequestDispatcher rd;
      HttpSession session= request.getSession();
String username= request.getParameter("username");
String password= request.getParameter("password");
UserDAO ud = new UserDAO();
User u =  new User();
u.setUsername(username);
u.setPassword(password);
List ulist= ud.findByProperty("username",username);//用户名查找
if(ulist.size()== 0)
{
String s = "the userID can't be found!";
rd = request.getRequestDispatcher("login.jsp?sb=" +s);
rd.forward(request, response);
}
ulist = ud.findByExample(u);//用户名,密码一起查找
if(ulist.size()==0)
{
String s= "password error!";
rd = request.getRequestDispatcher("login.jsp?sb=" +s);
rd.forward(request, response);
}
u= (User)ulist.get(0);
session.setAttribute("user", u);
rd = request.getRequestDispatcher("index.jsp");
rd.forward(request, response);
}}
-------------------------------------------------------------------------------------

解决方案 »

  1.   

    ----------------------------------------login.jsp------------------------------------
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <%@page import="holy.User"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>login</title>
    </head>
    <body>
    <jsp:useBean id="user" class="holy.User" scope="session"/>
    <form  id="login" method= "post" action= "/UserLogin/loginServlet"/>
    user:    <input type="text" name="username"> <br>
    password: <input type="text" name = "password"><br>
    <input type = "submit" value="login">
    <%
     if(request.getParameter("sb") != null)
     {
       out.println(request.getParameter("sb"));
     } %>
    </body>
    </html>
    --------------------------------------------------------------------------------
    ----------------------------web.xml-------------------------------------------
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
      <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>loginServlet</servlet-name>
        <servlet-class>holy.loginServlet</servlet-class>
      </servlet>  <servlet-mapping>
        <servlet-name>loginServlet</servlet-name>
        <url-pattern>/loginServlet</url-pattern>
      </servlet-mapping>
      <welcome-file-list>
        <welcome-file>login.jsp</welcome-file>
      </welcome-file-list>
    </web-app>
    ----------------------------------------------------------------------------------
    --------------------------User.java----------------------------------------------
    package holy;/**
     * User entity.
     * 
     * @author MyEclipse Persistence Tools
     */public class User implements java.io.Serializable { // Fields private String username;
    private String password;
    private Integer level; // Constructors /** default constructor */
    public User() {
    } /** full constructor */
    public User(String username, String password, Integer level) {
    this.username = username;
    this.password = password;
    this.level = level;
    } // Property accessors public String getUsername() {
    return this.username;
    } public void setUsername(String username) {
    this.username = username;
    } public String getPassword() {
    return this.password;
    } public void setPassword(String password) {
    this.password = password;
    } public Integer getLevel() {
    return this.level;
    } public void setLevel(Integer level) {
    this.level = level;
    }}
    ---------------------------------------------------------------
    --------------------UserDAO.java-------------------------------
    package holy;import java.util.List;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.hibernate.LockMode;
    import org.hibernate.Query;
    import org.hibernate.criterion.Example;/**
     * A data access object (DAO) providing persistence and search support for User
     * entities. Transaction control of the save(), update() and delete() operations
     * can directly support Spring container-managed transactions or they can be
     * augmented to handle user-managed Spring transactions. Each of these methods
     * provides additional information for how to configure it for the desired type
     * of transaction control.
     * 
     * @see holy.User
     * @author MyEclipse Persistence Tools
     */public class UserDAO extends BaseHibernateDAO {
    private static final Log log = LogFactory.getLog(UserDAO.class);
    // property constants
    public static final String PASSWORD = "password";
    public static final String LEVEL = "level"; public void save(User transientInstance) {
    log.debug("saving User instance");
    try {
    getSession().save(transientInstance);
    log.debug("save successful");
    } catch (RuntimeException re) {
    log.error("save failed", re);
    throw re;
    }
    } public void delete(User persistentInstance) {
    log.debug("deleting User instance");
    try {
    getSession().delete(persistentInstance);
    log.debug("delete successful");
    } catch (RuntimeException re) {
    log.error("delete failed", re);
    throw re;
    }
    } public User findById(java.lang.String id) {
    log.debug("getting User instance with id: " + id);
    try {
    User instance = (User) getSession().get("holy.User", id);
    return instance;
    } catch (RuntimeException re) {
    log.error("get failed", re);
    throw re;
    }
    } public List findByExample(User instance) {
    log.debug("finding User instance by example");
    try {
    List results = getSession().createCriteria("holy.User").add(
    Example.create(instance)).list();
    log.debug("find by example successful, result size: "
    + results.size());
    return results;
    } catch (RuntimeException re) {
    log.error("find by example failed", re);
    throw re;
    }
    } public List findByProperty(String propertyName, Object value) {
    log.debug("finding User instance with property: " + propertyName
    + ", value: " + value);
    try {
    String queryString = "from User as model where model."
    + propertyName + "= ?";
    Query queryObject = getSession().createQuery(queryString);
    queryObject.setParameter(0, value);
    return queryObject.list();
    } catch (RuntimeException re) {
    log.error("find by property name failed", re);
    throw re;
    }
    } public List findByPassword(Object password) {
    return findByProperty(PASSWORD, password);
    } public List findByLevel(Object level) {
    return findByProperty(LEVEL, level);
    } public List findAll() {
    log.debug("finding all User instances");
    try {
    String queryString = "from User";
    Query queryObject = getSession().createQuery(queryString);
    return queryObject.list();
    } catch (RuntimeException re) {
    log.error("find all failed", re);
    throw re;
    }
    } public User merge(User detachedInstance) {
    log.debug("merging User instance");
    try {
    User result = (User) getSession().merge(detachedInstance);
    log.debug("merge successful");
    return result;
    } catch (RuntimeException re) {
    log.error("merge failed", re);
    throw re;
    }
    } public void attachDirty(User instance) {
    log.debug("attaching dirty User instance");
    try {
    getSession().saveOrUpdate(instance);
    log.debug("attach successful");
    } catch (RuntimeException re) {
    log.error("attach failed", re);
    throw re;
    }
    } public void attachClean(User instance) {
    log.debug("attaching clean User instance");
    try {
    getSession().lock(instance, LockMode.NONE);
    log.debug("attach successful");
    } catch (RuntimeException re) {
    log.error("attach failed", re);
    throw re;
    }
    }
    }
    --------------------------------------------------------------------------
    -----------------------hibernate.cfg.xml---------------------------------
    <?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools.                   -->
    <hibernate-configuration> <session-factory>
    <property name="connection.username">sa</property>
    <property name="connection.url">
    jdbc:microsoft:sqlserver://localhost:1433
    </property>
    <property name="dialect">
    org.hibernate.dialect.SQLServerDialect
    </property>
    <property name="myeclipse.connection.profile">
    HQL_TEST
    </property>
    <property name="connection.password">mysql</property>
    <property name="connection.driver_class">
    com.microsoft.jdbc.sqlserver.SQLServerDriver
    </property>
    <mapping resource="holy/User.hbm.xml" /> </session-factory></hibernate-configuration>
    -------------------------------------------------------------------------
    --------------------------------User.hbm.xml----------------------------
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- 
        Mapping file autogenerated by MyEclipse Persistence Tools
    -->
    <hibernate-mapping>
        <class name="holy.User" table="user" schema="dbo" catalog="TEST">
            <id name="username" type="java.lang.String">
                <column name="username" length="15" />
                <generator class="assigned" />
            </id>
            <property name="password" type="java.lang.String">
                <column name="password" length="10" not-null="true" />
            </property>
            <property name="level" type="java.lang.Integer">
                <column name="level" not-null="true" />
            </property>
        </class>
    </hibernate-mapping>
    -----------------------------------------------------------------------------
      

  2.   

    在UserDAO.java中  
    public List findByProperty(String propertyName, Object value) {
    log.debug("finding User instance with property: " + propertyName
    + ", value: " + value);
    try {
    String queryString = "from User as model where model."
    + propertyName + "= ?";

    Query queryObject = getSession().createQuery(queryString);
    queryObject.setParameter(0, value);
    return queryObject.list();
    } catch (RuntimeException re) {
    log.error("find by property name failed", re);
    throw re;
    }
    }把as去掉试试,
    String queryString = "from User model where model."
    + propertyName + "= ?";
      

  3.   

    把as去掉试试,
    String queryString = "from User model where model."
    + propertyName + "= ?";
      

  4.   

    根据错误信息,可以看出,是你的hql语句有误,建议你
    String queryString = "from User as model where model."
    + propertyName + "= ?";
    Query queryObject = getSession().createQuery(queryString);
    queryObject.setParameter(0, value);
    //在这加上查看执行的hql语句,把他打印出来,看是否有错
    System.out.println(queryObject.getQueryString());
    return queryObject.list();
      

  5.   

    try {
    String queryString = "from User as model where model." + propertyName + "= ?";
    Query queryObject = getSession().createQuery(queryString);
    queryObject.setParameter(0, value);
    return queryObject.list();
    } catch (Exception re) {
    re.printStackTrace();
    }
    试一下
      

  6.   


    try {
    String queryString = "from User m where m." + propertyName + "= ?";
    Query queryObject = getSession().createQuery(queryString);
    queryObject.setParameter(0, value);
    return queryObject.list();
    } catch (Exception re) {
    re.printStackTrace();
    }
    不好意思,楼上代码有误,用这个测一下,异常贴出来