您的位置:首页 > 编程语言 > Java开发

在Netbeans中使用Struts2.0+Spring2.5+Hibernate框架(一)

2013-10-25 16:18 459 查看


Netbeans 6.1中加入了Spring 2.5,Struts,Hibernate的支持,可以满足现在大部分企业应用SSH框架的开发需求。本文将用一个简单的登陆例子来介绍如何在Netbeans6.1中使用SSH框架进行企业级开发。本节介绍示例的准备工作、OR映射以及相关配置的方法。下一节则介绍页面层和框架整合的关键技术。

软件需求:

1、1、JDK1.6

2、Netbeans6.1,下载并安装Struts
2.0
插件,Hibernate
3.5支持以及库文件的插件
3、MySQL5数据库及JDBC驱动
4、Struts+Spring整合方案库  JDBC驱动和整合库在这里

实验步骤:

1、在MySQL中建立数据库sshdemo,执行以下脚本:

SETFOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
CREATE TABLE `user` (
`userId` bigint(20) NOT NULL auto_increment,
`userName` varchar(20) NOT NULL,
`password` varchar(30) NOT NULL,
PRIMARY KEY (`userId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
------------------------------
-- Records
-- ----------------------------
INSERT INTO `user` VALUES ('1', 'mg', '123');

2、在Netbeans6.1中建立Web工程,在选择框架时选择Spring
Web MVC2.5及Struts2.0和Hibernate,命名为SSHDemo,如下图所示:



点击工程右键-属性-库-添加Jar文件,加入ssh_lib.zip包中的两个包。

3、在源包中新建包po,dao,service,action四个包,分别用来放置ORM映射、数据库操作、业务逻辑以及Struts的Action。

4、建立Model,在po包中新建类User,代码如下:

public class User {
private String name;
private long id;
private String password;
}


单击右键,选择“重构”-“封装字段”,选择所有字段进行封装,生成get和set方法。

5、建立Model和数据库的映射。生成在源包中右键单击po包,新建-其他-Hibernate-HibernateConfiguration
File,如下图所示:



点击下一步,命名为hibernate1.cfg,点击下一步,在database connection中把下拉框拉到最下面,点击“新建数据库连接”,如下图所示:



注意用户名和密码可以自己指定。最后点击完成,在源包的缺省包中就会生成hibernate1.cfg.xml的Hibernate配置文件:

<?xml version="1.0"encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/HibernateConfiguration DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="session1">
<propertyname="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<propertyname="hibernate.connection.url">jdbc:mysql://localhost:3306/sshdemo</property>
<propertyname="hibernate.connection.username">root</property>
<propertyname="hibernate.connection.password">root</property>
</session-factory>
</hibernate-configuration>


在po包中点击右键,选择新建-其他-Hibernate-Hibernate Mapping File,命名为user.hbm,如下配置: 



点击完成,生成user.hbm.xml,加入映射关系如下:

<?xml version="1.0"encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class dynamic-insert="false" dynamic-update="false"mutable="true" name="po.User"optimistic-lock="version" polymorphism="implicit"select-before-update="false" table="user">
<id column="userId"name="id">
<generatorclass="identity"/>
</id>
<property column="userName"name="name" type="string"/>
<property column="admin"name="admin" type="integer"/>
<propertycolumn="password" name="password"type="string"/>
</class>
</hibernate-mapping>


6、在Spring IoC容器中定义Hibernate的SessionFactory。打开Web页- WEB-INF – applicationContext.xml,首先加入数据源的定义:

<bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!--指定连接数据库的驱动-->
<propertyname="driverClassName" value="com.mysql.jdbc.Driver"/>
<!--指定连接数据库的URL-->
<property name="url"value="jdbc:mysql://localhost:3306/sshdemo"/>
<!--指定连接数据库的用户名-->
<propertyname="username" value="root"/>
<!--指定连接数据库的密码-->
<propertyname="password" value="root"/>
</bean>
然后加入Hibernate的SessionFactory的定义:
<bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<propertyname="dataSource" ref="dataSource"/>
<propertyname="mappingResources">
<list>
<value>po/user.hbm.xml</value>
</list>
</property>
<propertyname="hibernateProperties">
<value>hibernate.dialect=org.hibernate.dialect.MySQLDialect</value>
</property>
</bean>


Spring的配置文件有强大的提示功能:

   


7、建立Dao接口及实现。在dao包中建立接口UserDao,代码如下:

public interface UserDao {
void save(User user) throws Exception;
User getUser(long userId);
User getUser(String userName);
}


建立实现类UserDaoImpl,代码如下:

package dao;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import po.User;
/**
*
* @author Administrator
*/
public class UserDaoImpl extendsHibernateDaoSupport implements UserDao{
public void save(User user) throws Exception
{
try
{
getHibernateTemplate().save(user);
}
catch(Exception err)
{
throw err;
}
}
public User getUser(longuserId)
{
return(User)getHibernateTemplate().get(User.class, userId);
}
public UsergetUser(String userName) {
return(User)getHibernateTemplate().find("from User as u where u.name = ?",userName).get(0);
}
}

该类继承于org.springframework.orm.hibernate3.support.HibernateDaoSupport,以方便地使用getHibernateTemplate()获得Hibernate支持。如getUser方法,可以用getHibernateTemplate()方法获得工厂对象sessionFactory,调用find方法可以通过HQL语句来查找对象,而不必再编写复杂的SQL语句。对实体的其他操作入插入操作则只需调用save方法。由于Dao类必须调用sessionFactory,因此必须通过Spring
IoC容器为Dao类注入sessionFactory。在applicationContext.xml中添加以下配置:

<bean id="userDao" class="dao.UserDaoImpl">
<propertyname="sessionFactory">
<refbean="sessionFactory"></ref>
</property>
</bean>

至此,OR映射工作完成。下一节将介绍页面层技术,包括国际化方案。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息