zoukankan      html  css  js  c++  java
  • 在Netbeans中使用Struts2.0+Spring2.5+Hibernate框架(一)

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

    软件需求:

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

    实验步骤:

    1、1、MySQL中建立数据库sshdemo,执行以下脚本:
    SET FOREIGN_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、2、Netbeans6.1中建立Web工程,在选择框架时选择Spring Web MVC2.5Struts2.0Hibernate,命名为SSHDemo,如下图所示:

     

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

    3、3、在源包中新建包podaoserviceaction四个包,分别用来放置ORM映射、数据库操作、业务逻辑以及StrutsAction

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

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

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

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

     

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

     

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

    <?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 name="session1">
       <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
       <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
       <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/sshdemo</property>
       <property name="hibernate.connection.username">root</property>
       <property name="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 DTD 3.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">
               <generator class="identity"/>
           </id>
           <property column="userName" name="name" type="string"/>
           <property column="admin" name="admin" type="integer"/>
           <property column="password" name="password" type="string"/>
       </class>
    </hibernate-mapping>

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

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
          <!--指定连接数据库的驱动-->
           <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
          <!--指定连接数据库的URL -->
           <property name="url" value="jdbc:mysql://localhost:3306/sshdemo"/>
          <!--指定连接数据库的用户名-->
           <property name="username" value="root"/>
          <!--指定连接数据库的密码-->
           <property name="password" value="root"/>
       
    </bean>

      然后加入HibernateSessionFactory的定义:
        <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
           <property name="dataSource" ref="dataSource"/>
           <property name="mappingResources">
               <list>
                   <value>po/user.hbm.xml</value>
               </list>
           </property>
           <property name="hibernateProperties">
               <value>hibernate.dialect=org.hibernate.dialect.MySQLDialect</value>
           </property>
       </bean>

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

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

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

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

    package dao;
    import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
    import po.User;

    /**
     *
     * @author Administrator
     */

    public class UserDaoImpl extends HibernateDaoSupport implements UserDao{
       public void save(User user) throws Exception
       {
           try
           {
               getHibernateTemplate().save(user);
           }
           catch(Exception err)
           {
               throw err;
           }

       }   

       public User getUser(long userId)
       {
           return (User)getHibernateTemplate().get(User.class, userId);
       } 

       public User getUser(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">
           <property name="sessionFactory">
               <ref bean="sessionFactory"></ref>
           </property>
       
    </bean> 
    至此,OR映射工作完成。下一节将介绍页面层技术,包括国际化方案。 

  • 相关阅读:
    12 go实现几中基本排序算法
    5 控制语句
    9 函数
    4. 常量与运算符
    AI
    AI
    AI
    AI
    ML
    ML
  • 原文地址:https://www.cnblogs.com/hannover/p/1637678.html
Copyright © 2011-2022 走看看