HttpSession session = request.getSession();
        Session s = HibernateUtil.currentSession(); //得到连接
        LoginForm loginForm = (LoginForm) form;        String sort = loginForm.getSort();
        String username = loginForm.getUsername();
        String password = loginForm.getPassword();
        int loginSort = Integer.parseInt(sort);        String[] userlist = new String[2];
        userlist[0] = username;
        userlist[1] = password;        try {
            HibernateUtil.beginTransaction();//开始事物
            String str = new String();
            switch (loginSort) {
            case 1:
                str = " from Student as stu where stu.name=:stuName and stu.password=:stuPassword";
                
                Query query = s.createQuery(str);
                //System.out.println(username + "  " + password);
                query.setString("stuName", username);
                query.setString("stuPassword", password);
                System.out.println(str);
                if (query.list().size() > 0) {
                    session.setAttribute("stuid", ((Student) query.list().get(0)).getId());
                    s.close();
                    return mapping.findForward("studentLoginsuccess");
                } else
                    break;

解决方案 »

  1.   

    我的映射文件如下:
    <?xml version="1.0"?>
    <!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 - Hibernate Tools
    -->
    <hibernate-mapping>
        <class name="com.stuman.domain.Student" table="student" lazy="false">
            <id name="id" type="string">
                <column name="id" length="32" />
                <generator class="assigned" />
            </id>
            <property name="name" type="string">
                <column name="name" length="32" />
            </property>
            <property name="password" type="string">
                <column name="password" length="32" />
            </property>
            <property name="jiguan" type="string">
                <column name="jiguan" length="32" />
            </property>
            <property name="department" type="string">
                <column name="department" length="32" />
            </property>
            <property name="sex" type="string">
                <column name="sex" length="32" />
            </property>
            <property name="" type="integer">
                <column name="" />
            </property>
            <property name="tel" type="string">
                <column name="tel" length="32" />
            </property>
            <property name="phone" type="string">
                <column name="phone" length="32" />
            </property>
            <property name="email" type="string">
                <column name="email" length="32" />
            </property>
            <set name="enrols" inverse="true">
                <key>
                    <column name="stu_id" length="32" />
                </key>
                <one-to-many class="com.stuman.domain.Enrol" />
            </set>
        </class>
    </hibernate-mapping>
      

  2.   

    你尝试着在代码中添加System.out.println(username);
    System.out.println(password);
    看这两个的值是否取到了...
    至少 我看代码是感觉没什么问题了...
      

  3.   

    把;select student0_.id as id, student0_.name as name1_, student0_.password as password1_, student0_.jiguan as jiguan1_, student0_.department as department1_, student0_.sex as sex1_, student0_. as 1_, student0_.tel as tel1_, student0_.phone as phone1_, student0_.email as email1_ from student student0_ where student0_.name=? and student0_.password=? 这条语句放到 sql 中去执行测试下看。
      

  4.   

     <id name="id" type="string">
                <column name="id" length="32" />
                <generator class="assigned" />
     </id>id生成用String?数据库中的id字段类型是否是以String相对应的字段?id为String这样能用吗?没用过。。