struts + hibernate 简单的例子

来源:互联网 发布:网络曝光暴力捉奸 编辑:程序博客网 时间:2024/05/17 01:14

写这篇文章的时候,其实已经学了spring了,但这两个星期由于感情、身体、辞职等等一大堆的烦恼问题,到现在还没做ssh的整合练习,= =!所以还是先把之前写的 struts + hibernate 的例子发上来。

例子实现了简单的用户注册,流程是  1. 前台填写用户名、密码和email。2.后台判断信息的合法性,并判断是否是第一个注册的用户,如果是,则注册成管理员,否则注册成普通会员。

 

    首先建个数据库和生成数据表,找开myeclipse,新建一个 web project,项目命名为User,使用myeclipse添加struts和hibernate的jar包,在添加hibernate包的时候,会有一个配置hibernate.cfg.xml的窗口,配置完后hibernate.cfg.xml文件大概会有如下相似的代码:

 

dialect:指定使用的数据库

connection.url:指定数据库url,可以看出我使用的数据库为hbm_user

connection.username:指定数据库用户名,我这里为root

connection.password:指定数据库密码

connection.driver_class:使用的数据库驱动

show_sql:是否在终端显示sql,测试的时间一般打开(true)

hbm2ddl.auto:自动建表,可以打开这个设置来建数据表。

 

然后,在src文件夹下建立如下图的包结构

com.hefan.action:用来存放action操作

com.hefan.dao:用来存放数据库操作

com.hefan.model:用来存放hibernate的orm

com.hefan.session:用来存放hibernate的session工厂类

com.hefan.util:存放了公共类

 

在com.hefan.model包下面新建一个User.java文件,新建User类,并增加如下的属性

    private Integer id;
    private String username;
    private String password;
    private String email;

和增加这些属性相对应的 setter 、getter,再在这个包下新歌建一个User.hbm.xml文件,文件内容如下:

 

再在同一个包下新建一个Admin类和Guest类,使这两个类同继承User类,这个例子中的这两个类不需要增加任何属性和方法,

然后在hibernate.cfg.xml文件里映射User.hbm.xml文件,增加如下代码:

<mapping resource="com/hefan/model/User.hbm.xml"/>

在com.hefan.action包里增加一个CreateDBAction.java文件,写入如下代码:

类CreateDBAction的createDB方法创建数据库,并把成功与否的信息保存在request的info变量中,然后定向到info所指向的页面,

打开struts-config.xml文件,在action-mappings下增加一个action

再在index.jsp里面增加如下代码

<jsp:forward page="createDB.do?method=createDB"></jsp:forward>

对createDb.do的请求,根据struts-config.xml里的配置会转发给CreateDBAction类,

method=createDB,指定类中的createDB方法。

运行项目,如果顺利会得到 “数据库创建成功...”的信息提示。

 

数据表user建立好后,向表中写入用户注册的信息,在com.hefan.dao包下编写User数据库操作类UserDao,

getUserCount()方法返回现有注册用户数量

saveUser(User user) 方法保存用户注册信息

List<User> getUsers() 方法返回所有己注册的用户的信息

 

在包com.hefan.util下面新建一个类Util,代码如下:

分别用来校验用户名、密码和Email。

在com.hefan.action包里增加一个UserAction类,用来处理用户注册请求,代码如下:

createUser() 方法用来增加用户

listUser() 方法用来列出己注册用户信息

 

然后在struts配置文件的action-mappings里增加一个action

此action将对user.do的请求转发给com.hefan.action.UserAction类,

在web主目录下新建一个jsp目录,再在此目录下新建一个info.jsp和listUser.jsp文件,info.jsp文件里增加代码:

${requestScope.info}

listUser.jsp文件里增加代码:

用来列出保存在request里的变量users的用户信息,

打开web主目录下的index.jsp文件,将之前的jsp:forward标签删除,因为数据表已经建立好了。

在index.jsp文件里加入用户注册表单,代码如下:

method=createUser 定义了要执行createUser方法。

最后配置hibernate.cfg.xml文件,将hbm2ddl.auto的值改为none,设置不自动建表。

执行项目,写入注册信息:

提交后查看数据库,已经增加了一条用户信息了,myeclipse的Console窗口也打印了两条sql语句

Hibernate: select count(*) as col_0_0_ from user user0_
Hibernate: insert into user (usrename, password, email, type) values (?, ?, ?, 'admin')

再一次注册一个新用户,myeclipse的Console窗口打印了如下两条sql语句

Hibernate: select count(*) as col_0_0_ from user user0_
Hibernate: insert into user (usrename, password, email, type) values (?, ?, ?, 'guest')

正如开始所想的那样,第一次注册的设置为系统管理员,否则设置为普通用用户,

执行完后使用phpmyadmin查看数据库,如下图:

,此程序存在很多缺陷,这里只做简单的介绍 struts 和hibernate使用方法

原创粉丝点击