您的位置:首页 > 其它

一个简单的Hibernate登录实例

2016-07-04 21:37 591 查看
    这是一个关于Hibernate登录的实例,开发工具:MyEclipse2014,mysql,jdk,hibernate, struts2。下面是实例的具体步骤。

 

1.   新建一个Web Project项目Hibernate_EXA。

 

2.   在mysql数据库中新建数据库名为stms和表user,user两个字段name和password,均设为varchar型,name为主键。

 

3.   打开数据库试图,新建一个数据库连接,具体步骤略,可以参考之前的博客地址:http://blog.csdn.net/moon__stone888888/article/details/51782390

数据连接名命名为MySqlConn,这个由自己定义。

 

4.   在项目中配置hibernate,可以参考之前的博客地址:http://blog.csdn.net/moon__stone888888/article/details/51779256

在配置向导中的数据库驱动(DB Driver)选择MySqlConn,按向导配置直到完成。

 

5.   使用Hibernate自动生成永久的java文件

在src目录下新建bean包。在DB Browser下,右键stms数据库下的user表,选择Hibernate Reverse Engineering,弹出如下对话框:



如上图所示,点击“Next >”,如下图



如上图所示,点击“Next >”,如下图



如上图,点击“Finish”,完成配置后,在bean包下面生成了三个文件,AbstractUser.java,User.jva,User.hbm.xml。同时可以看到hibernate.cfg.xml文件里有了User.hbm.xml的映射。

<?xmlversion='1.0'
encoding='UTF-8'?>

<!DOCTYPE
hibernate-configuration PUBLIC

          "-//Hibernate/HibernateConfiguration DTD 3.0//
4000
EN"

          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools.                   -->

<hibernate-configuration>

 

    <session-factory>

        <property
name="dialect">

            org.hibernate.dialect.MySQLDialect

        </property>

        <property
name="connection.url">

            jdbc:mysql://localhost:3306/stms

        </property>

        <property
name="connection.username">root</property>

        <property
name="connection.password">cyj</property>

        <property
name="connection.driver_class">

            com.mysql.jdbc.Driver

        </property>

        <property
name="myeclipse.connection.profile">

            MySqlConn

        </property>

        <mapping
resource="bean/User.hbm.xml"
/>

 

    </session-factory>

 

</hibernate-configuration>

 

 

6.  添加struts2框架,具体步骤省略,可以参考之前的博客地址:http://blog.csdn.net/moon__stone888888/article/details/51803997

 

7.  新建一个包com.su,新建一个login.java类,放到com.su下,longin.java文件内容为:

 

import java.util.*;

 

import org.hibernate.HibernateException;

import org.hibernate.Session;

import org.hibernate.Transaction;

import org.hibernate.SessionFactory;

importorg.hibernate.cfg.Configuration;

 

import bean.Good;

import bean.User;

 

public
class
login {

   

    private String
username; 

    private String
password;

   

    public
String getUsername() { 

        returnusername;

    }

   

   

    public
void
setUsername(String userName){ 

        this.username = userName; 

    }

   

   

    public String getPassword() { 

        return
password; 

    }

   

   

    public
void
setPassword(String password){ 

        this.password = password; 

    }

   

    public String execute() {

   

   

    /*

        if("suo".equals(this.userName)&& "123".equals(this.password)) 

            return "success"; 

        else 

            return"fail"; 

        */

        boolean has =
false
;

        try {

            SessionFactory sf = newConfiguration().configure().buildSessionFactory();

            Session session =sf.openSession();

            List catlist = null;

            catlist =session.createQuery("from User").list();

            Transaction tx =session.beginTransaction();

            if (catlist !=
null) {

                Iterator it= catlist.iterator();

               

                while (it.hasNext()) {

                    User user =(User) it.next();

                    //System.out.println("ID: " + good.getId() + "
性别:"

                    //+ good.getName()+"\n");

                   

                    if(user.getName().equals(this.username) &&  user.getPassword().equals(this.password))


                        has = true;

                        break;

                    }

                    else 

                    has= false;

                }

            }

            tx.commit();

            session.clear();

            if (has)

                return
"success";

            else

                return
"fail";

        }

        catch (HibernateException e) {

            // TODO: handle exception

            e.printStackTrace();

            return
"fail";

        }

       

    }

 

}

 

 

Struts.xml的配置为:

<?xmlversion="1.0"
encoding="UTF-8"?>

<!DOCTYPE
struts PUBLIC"-//Apache Software Foundation//DTD StrutsConfiguration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">

<struts>

    <package
name="test"
namespace="/test"extends="struts-default"> 

        <actionname="login"
class="com.su.login"method="execute"> 

            <resultname="success">/WEB-INF/result/success.jsp</result> 

            <resultname="fail">/WEB-INF/result/fail.jsp</result>

        </action>

     </package>

</struts>

 

 

Web.xml的配置为:

<?xmlversion="1.0"
encoding="UTF-8"?>

<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://xmlns.jcp.org/xml/ns/javaee"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID"
version="3.1">

  <display-name>Hibernate_EXA</display-name>

  <welcome-file-list>

    <welcome-file>index.html</welcome-file>

    <welcome-file>index.htm</welcome-file>

    <welcome-file>index.jsp</welcome-file>

    <welcome-file>default.html</welcome-file>

    <welcome-file>default.htm</welcome-file>

    <welcome-file>default.jsp</welcome-file>

  </welcome-file-list>

  <filter>

    <filter-name>struts2</filter-name>

    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

  </filter>

  <filter-mapping>

    <filter-name>struts2</filter-name>

    <url-pattern>/*</url-pattern>

  </filter-mapping>

</web-app>

 

index.jsp的文件内容为:

<%@ page language="java" import="java.util.*"pageEncoding="GB18030"%>

<%

String path = request.getContextPath();

String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

   

    <title>用户登录界面</title>

    <meta http-equiv="pragma" content="no-cache">

    <meta http-equiv="cache-control"content="no-cache">

    <meta http-equiv="expires"content="0">   

    <meta http-equiv="keywords"content="keyword1,keyword2,keyword3">

    <meta http-equiv="description"content="This is my page">

    <!--

    <link rel="stylesheet"type="text/css" href="styles.css">

    -->

  </head>

 

  <script type="text/javascript">

  // 验证输入不为空的脚本代码

  function checkForm(form)

  {

    if (form.username.value =="")

    {

      alert("用户名不能为空!");

      form.username.focus();

      return false;

    }

    if (form.password.value =="")

    {

      alert("密码不能为空!");

      form.password.focus();

      return false;

    }

    return true;

  }

  </script>

 

  <body>

    <%=request.getContextPath()%> <br/>

    <%=basePath%> <br/>

    <formaction="/Hibernate_EXA/test/login" method="post"onSubmit="return checkForm(this);"> 

        用户名:<inputtype="text" name="username"/><br/> 

        密码:<inputtype="password" name="password"/><br/> 

        <inputtype="submit" value="登录">

        <inputtype="reset" value="重置">

    </form>

  </body>

</html>

 

启动tomcat服务器,可以进行登录测试了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: