日期:2014-05-16 浏览次数:20854 次
??? 继续在前一节的基础上将登录的数据保存到数据库中,数据持久化用Hibernate3,数据库用mysql5。
??? 先声明如下:上节中,action放到了包com.dianzi.login.action中,如果有多个action包,并且还有其他诸如实体bean的包时,action层不能在视图中连续排列,不便于查看,现将com.dianzi.login.action包,改名为com.dianzi.action.login。此项修改还将影响到struts-login.xml文件中的两次引用,请自行修改,不详细累牍。由于修改博客时代码格式全部消失,故不再修改上节内容。
?
??? 打开第一节的工程dianziStruts2Base。首先第一步,还是导入必备的jar包。
??? Hibernate下载:我下的版本是Hibernate3.3.1 ,解压后,一共有6个必备包:
?
antlr-2.7.6.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
hibernate3.jar
javassist-3.4.GA.jar
jta-1.1.jar
?
?
??? mysql驱动包: 我下载的版本是mysql3.1.11 ,解压后找到:
mysql-connector-java-3.1.11-bin.jar
?
??? 另外还有三个包是必备的,可以到findjar网站 搜索并下载,这个网站真的是很有用的一个工具网站 。
log4j-1.2.13.jar
slf4j-api-1.5.6.jar
slf4j-log4j12-1.5.6.jar
?
??? 其次是安装mysql5,我安装的是5.0.18,有关mysql的安装请查看《mysql5全新安装手册》
?
??? 环境都准备好了,下面我们开始正式的组装我们的代码了。
?
1、在 src 目录下建 "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"> <hibernate-configuration> <!-- session-factory配置 --> <session-factory> <!-- 数据库url --> <property name="hibernate.connection.url"> jdbc:mysql://localhost:3306/struts2 </property> <!-- 数据库jdbc驱动 --> <property name="hibernate.connection.driver_class"> com.mysql.jdbc.Driver </property> <!-- 数据库用户名 --> <property name="hibernate.connection.username">root</property> <!-- 数据库用户密码 --> <property name="hibernate.connection.password">root</property> <!-- dialect,每个数据库都有其对应的dialect以匹配其平台特性 Hibernate2.0--> <property name="dialect"> org.hibernate.dialect.MySQLDialect </property> <!-- 是否将运行期生成的sql输出到日志以供调试 --> <property name="hibernate.show_sql">TRUE</property> <!-- 是否使用数据库外连接 --> <property name="hibernate.user_outer_join">TRUE</property> <!-- 事务管理类型,这里使用JDBC Transaction <property name="hibernate.transation.factory_class"> org.hibernate.transaction.JDBCTransactionFactory </property>--> <!-- 映射文件配置,注意配置文件名必须包含其相对于根的全路径 --> <mapping resource="mapping/User.hbm.xml" /> </session-factory> </hibernate-configuration>
?
2、建立实体类 "com.dianzi.model.User.java" 及其映射文件 "User.hbm.xml" 放在 "mapping" 包下。
其中"User.java"的代码如下:
?
/** * */ package com.dianzi.model; /** * 用户实体 * * @author 点子二木 * @date 2009-1-4 * @version 1.0 */ public class User extends SuperAModel { private static final long serialVersionUID = -2135003197973935025L; private String name;//用户名 private String password;//密码 private int roleId;//角色 public User() { } public User(String username, String password) { this.name = username; this.password = password; } public String getName() { return name; } public void set