日期:2014-05-16  浏览次数:20799 次

eclipse开发J2EE项目系列(2)——Struts2+Hibernate3+mysql5

??? 继续在前一节的基础上将登录的数据保存到数据库中,数据持久化用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