首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Struts2 + Spring + Hibernate 整合示例:用戶註冊完整代碼

     編輯:Java 綜合教學

Struts2 + Spring + Hibernate 整合示例:用戶註冊完整代碼

經典 SSH 整合最小化 Demo,實現「添加用戶」功能,涵蓋配置文件、Action/Service/DAO、實體映射、JSP 頁面,適合初學者快速跑通整合流程。

專案結構


src/
├── cn.bj.ssh.entity.User
├── cn.bj.ssh.dao.UserDao
├── cn.bj.ssh.service.UserService
├── cn.bj.ssh.action.UserAction
resources/
├── applicationContext.xml
├── jdbc.properties
├── User.hbm.xml
web/
├── WEB-INF/
│   ├── web.xml
│   ├── struts.xml
│   └── zwy-servlet.xml
└── addUser.jsp

核心配置

jdbc.properties

jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/ssh
jdbc.username=root
jdbc.password=root

applicationContext.xml

<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="driverClass" value="${jdbc.driverClass}"/>
    <property name="jdbcUrl" value="${jdbc.url}"/>
    <property name="user" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
        </props>
    </property>
    <property name="mappingResources">
        <list><value>cn/bj/ssh/entity/User.hbm.xml</value></list>
    </property>
</bean>

<!-- 事務管理 -->
<bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory"/>
</bean>
<tx:annotation-driven transaction-manager="txManager"/>

<!-- Bean 註冊 -->
<bean id="userDao" class="cn.bj.ssh.dao.UserDao">
    <property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="userService" class="cn.bj.ssh.service.UserService">
    <property name="userDao" ref="userDao"/>
</bean>
<bean id="userAction" class="cn.bj.ssh.action.UserAction" scope="prototype">
    <property name="userService" ref="userService"/>
</bean>

struts.xml

<package name="ssh" extends="struts-default" namespace="/">
    <action name="user_*" class="userAction" method="{1}">
        <result name="loginSuccess">/index.jsp</result>
    </action>
</package>

web.xml

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
<servlet>
    <servlet-name>zwy</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>zwy</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>

zwy-servlet.xml

<context:component-scan base-package="com.zwy.web"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <property name="suffix" value=".jsp"/>
</bean>

Java 代碼

User 實體

public class User {
    private Integer pid; private String name, password; private Double height;
    // getter/setter/構造器
}

User.hbm.xml

<class name="cn.bj.ssh.entity.User" table="user">
    <id name="pid" column="pid"><generator class="native"/></id>
    <property name="name" column="name" length="20"/>
    <property name="password" column="password" length="20"/>
    <property name="height" column="height"/>
</class>

UserDao

public class UserDao {
    private SessionFactory sessionFactory;
    public void save(User user) {
        sessionFactory.getCurrentSession().save(user);
    }
}

UserService

@Transactional
public class UserService {
    private UserDao userDao;
    public void save(User user) { userDao.save(user); }
}

UserAction

public class UserAction extends ActionSupport implements ModelDriven<User> {
    private User user = new User();
    private UserService userService;
    public User getModel() { return user; }
    public void setUserService(UserService userService) { this.userService = userService; }
    public String save() {
        userService.save(user);
        return "loginSuccess";
    }
}

addUser.jsp

<s:form action="user_save" method="post" namespace="/" theme="simple">
<table border="1" width="400">
    <tr><td>用戶名</td><td><s:textfield name="name"/></td></tr>
    <tr><td>密碼</td><td><s:textfield name="password"/></td></tr>
    <tr><td>身高</td><td><s:textfield name="height"/></td></tr>
    <tr><td colspan="2"><input type="submit" value="添加"/></td></tr>
</table>
</s:form>

運行驗證

  1. 啟動 Tomcat,訪問 https://localhost:8080/專案名/addUser.jsp。
  2. 填寫表單提交,控制台輸出 Hibernate SQL,數據庫 user 表新增記錄。
  3. 頁面跳轉至 index.jsp(需自建)。

源碼下載:微雲分享(含完整 JAR 包與 SQL)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved