文档章节

spring4+hibernate4+struts2整合实例

liuhuics10
 liuhuics10
发布于 2015/12/05 20:56
字数 1090
阅读 676
收藏 14
点赞 0
评论 0

项目的整体结构如下:

项目用到的所有jar包如下:


项目所有的类和文件如下:

1.src/beans.xml:

<? xml version= "1.0" encoding= "UTF-8" ?>
< beans xmlns= "http://www.springframework.org/schema/beans"
    xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context ="http://www.springframework.org/schema/context"
    xmlns:aop= "http://www.springframework.org/schema/aop"
    xmlns:tx= "http://www.springframework.org/schema/tx"
    xsi:schemaLocation ="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop  
          http://www.springframework.org/schema/aop/spring-aop.xsd
           http://www.springframework.org/schema/tx  
     http://www.springframework.org/schema/tx/spring-tx.xsd " >
       
    <context:annotation-config ></context:annotation-config >
    <tx:annotation-driven transaction-manager ="transactionManager" />
   
     
      <bean id = "userService" class= "service.UserServiceImpl">
      </bean >
     
      <bean id = "userDao" class= "dao.UserDaoImpl">
      </bean >
     
      <bean id = "userAction" class= "action.UserAction">
      </bean >
     
      <bean id = "dataSource" class= "org.apache.commons.dbcp.BasicDataSource" >
          <property name = "driverClassName" value= "com.mysql.jdbc.Driver" />
          <property name = "url" value= "jdbc:mysql://localhost:3306/spring" />
          <property name = "username" value= "root"/>
          <property name = "password" value= "*******"/>
      </bean >
      <bean id = "transactionManager" 
         class = "org.springframework.orm.hibernate4.HibernateTransactionManager" > 
      <property name = "sessionFactory" ref= "sessionFactory" />
      </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>  
                <prop key = "hibernate.format_sql"> true</ prop>  
            </props > 
        </property >
       
        <property name = "packagesToScan">  
            <list > 
                <value >entity </value > 
            </list > 
        </property >   
    </bean > 
         <!-- 配置HibernateTemplate Bean -->
    <bean id = "hibernateTemplate" class= "org.springframework.orm.hibernate4.HibernateTemplate" >
      <property name = "sessionFactory" ref= "sessionFactory" ></property >
    </bean >
     
</ beans>

2.src/log4j.properites:

### direct log messages to stdout ###
log4j.appender.stdout= org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target= System.out
log4j.appender.stdout.layout= org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= %d{ABSOLUTE} %5p %c {1}:%L - %m%n

### direct messages to file hibernate.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger= warn, stdout

#log4j.logger.org.hibernate=info
#log4j.logger.org.hibernate=debug

### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=debug

### log just the SQL
#log4j.logger.org.hibernate.SQL=debug

### log JDBC bind parameters ###
#log4j.logger.org.hibernate.type=info
#log4j.logger.org.hibernate.type=debug

### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl= debug

### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug

### log cache activity ###
#log4j.logger.org.hibernate.cache=debug

### log transaction activity
#log4j.logger.org.hibernate.transaction=debug

### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug

### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

3.src/struts.xml:

<? xml version= "1.0" encoding = "UTF-8" ?>
<! DOCTYPE struts PUBLIC
      "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
      "http://struts.apache.org/dtds/struts-2.3.dtd" >
 < struts >
     <package name = "reg" extends = "struts-default">
           <action name = "user" class = "action.UserAction">
               <result name = "success" >/ reg/regSuccess.jsp </ result>
               <result name = "input" >/ reg/regFail.jsp </ result>
           </action >
         </package >
 </ struts >

4.WebContent/reg/reg.jsp:

<%@ page language = "java" contentType= "text/html; charset=utf-8"
    pageEncoding= "utf-8"%>
<! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd" >
< html>
< head>
< meta http-equiv= "Content-Type" content = "text/html; charset=utf-8">
< title> Insert title here</ title>
</ head>
< body>
      <form action = "user.action" method= "post">< br>
            uname: <input type = "text" name= "uname"/>< br>
            pwd:< input type= "password" name = "pwd"/>< br>
            repwd< input type= "password" name = "repwd"/>< br>
           提交: <input type = "submit" value= "提交 "/>
      </form >
</ body>
</ html>

5.WebContent/reg/regSuccess.jsp:

<%@ page language = "java" contentType= "text/html; charset=utf-8"
    pageEncoding= "utf-8"%>
<! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd" >
< html>
< head>
< meta http-equiv= "Content-Type" content = "text/html; charset=utf-8">
< title> Insert title here</ title>
</ head>
< body>
      <h1 >注册成功 </h1 >
</ body>
</ html>

6.WebContent/reg/regFail.jsp:

<%@ page language = "java" contentType= "text/html; charset=utf-8"
    pageEncoding= "utf-8"%>
<! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd" >
< html>
< head>
< meta http-equiv= "Content-Type" content = "text/html; charset=utf-8">
< title> Insert title here</ title>
</ head>
< body>
      <h1 >注册失败:用户名重复 </h1 >
</ body>
</ html>

7.WEB-INF/web.xml:

<? xml version= "1.0" encoding= "UTF-8" ?>
< web-app xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns= "http://java.sun.com/xml/ns/javaee" xsi:schemaLocation ="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id= "WebApp_ID" version = "3.0">
  < display-name >SSHJunior </display-name >
  < welcome-file-list >
    <welcome-file >index.html </welcome-file >
    <welcome-file >index.htm </welcome-file >
    <welcome-file >index.jsp </welcome-file >
    <welcome-file >default.html </welcome-file >
    <welcome-file >default.htm </welcome-file >
    <welcome-file >default.jsp </welcome-file >
  </ welcome-file-list >
  < filter>
    <filter-name >struts2 </filter-name >
    < filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class >
  </ filter>
  < filter-mapping >
    <filter-name >struts2 </filter-name >
    <url-pattern >/* </url-pattern >
  </ filter-mapping >
 
  < listener>
        < listener-class> org.springframework.web.context.ContextLoaderListener </listener-class >
    </listener >
    <context-param >
      <param-name >contextConfigLocation </param-name >
            <!-- 默认找/WEB-INF/applicationContext.xml -->
      <param-value >classpath:beans.xml </param-value >
    </context-param >
</ web-app>

8.entity.User.jsp:

package entity;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class User {
     private int id;
     private String uname;
     private String pwd;
     @Id
     @GeneratedValue
     public int getId() {
          return id;
     }
     public void setId(int id) {
          this.id = id;
     }
     public String getUname() {
          return uname;
     }
     public void setUname(String uname) {
          this.uname = uname;
     }
     public String getPwd() {
          return pwd;
     }
     public void setPwd(String pwd) {
          this.pwd = pwd;
     }
    
}

9.service.UserService.java:

package service;

import entity.User;

public interface UserService {

      boolean exists(User user);

      void add(User user);

}

10.service.UserServiceImpl.java:

package service;

import javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional ;

import dao.UserDao;
import entity.User;

public class UserServiceImpl implements UserService {
     
      private UserDao userDao;
     
     

      public UserDao getUserDao() {
            return userDao;
     }
     
      @Resource
      public void setUserDao(UserDao userDao) {
            this. userDao = userDao;
     }

      /* (non-Javadoc)
      * @see service.UserService#exists(entiey.User)
      */
      @Override
      public boolean exists(User user) {
            return userDao.checkUserExistsByUname( user.getUname());
        
     }

      /* (non-Javadoc)
      * @see service.UserService#add(entiey.User)
      */
      @Override
      @Transactional
      public void add(User user) {
            userDao.save( user); 
     }
}

11.dao.UserDao.java:

package dao;

import entity.User;

public interface UserDao {

      boolean checkUserExistsByUname(String uname);

      void save(User user);

}

12.dao.UserDaoImpl.java:

package dao;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.orm.hibernate4.HibernateTemplate;
import entity.User;
public class UserDaoImpl implements UserDao {
     private HibernateTemplate hibernateTemplate;
    
    
     public HibernateTemplate getHibernateTemplate() {
          return hibernateTemplate;
     }
    
     @Resource
     public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
          this.hibernateTemplate = hibernateTemplate;
     }
    
    
     /* (non-Javadoc)
     * @see dao.UserDao#checkUserExistsByUname(java.lang.String)
     */
     @Override
     public boolean checkUserExistsByUname(String uname){
          //String sql = "select count(*) from User where uname = '"+uname+"'";
          String sql = "from User where uname = '"+uname+"'";
          List list = (List) hibernateTemplate.find(sql);
          if(list!=null&&list.size()>0){
               return true;
          }
         
         return false;
     }
    
     /* (non-Javadoc)
     * @see dao.UserDao#save(entiey.User)
     */
     @Override
     public void save(User user){
          hibernateTemplate.save(user);
     }
}

13.action.UserAction.java:

package action;


import javax.annotation.Resource;

import org.springframework.context.annotation.Scope;

import com.opensymphony.xwork2.ActionSupport;

import entity.User;
import service.UserService;
@Scope( "prototype")
public class UserAction extends ActionSupport {
     
      private String uname;
      private String pwd;
      private String repwd;
      private UserService userService;
     

      public String getUname() {
            return uname;
     }

      public void setUname(String uname) {
            this. uname = uname;
     }

      public String getPwd() {
            return pwd;
     }

      public void setPwd(String pwd) {
            this. pwd = pwd;
     }


      public String getRepwd() {
            return repwd;
     }

      public void setRepwd(String repwd) {
            this. repwd = repwd;
     }

      public UserService getUserService() {
            return userService;
     }
     
      @Resource
      public void setUserService(UserService userService) {
            this. userService = userService;
     }

      @Override
      public String execute() throws Exception {
           User user = new User();
            user.setUname( uname);
            user.setPwd( pwd);
            if( userService.exists( user)){
                 return INPUT;
           }
            userService.add( user);
            return SUCCESS;
     }
}


© 著作权归作者所有

共有 人打赏支持
liuhuics10
粉丝 4
博文 96
码字总数 39010
作品 0
烟台
python_day6_对象

6.1: 类与对象实例 python是一门面向对象编程语言,其中编程方式分为三种范式: 1、面向过程编程 2、函数式编程 分为两种:数学层次的编程与python函数式编程 3、面向对象编程 对象是由类产...

812374156 ⋅ 2017/12/22 ⋅ 0

solr

搜索引擎/服务 solr 搜索引擎或者搜索框架,其实总体分为两部分, 第一步,分析整理数据建立起索引结构的存储; 第二部,从存储的索引数据中查找 数据,返回给客户端; solr 的使用一般应该有...

LANTIANFEIYING ⋅ 2016/10/20 ⋅ 0

snakerflow/snaker-springmvc

Introduction Snaker-SpringMVC项目主要是基于springMVC、spring3、hibernate3、snaker框架整合的一个最基本的流程管理模块,方便大家轻松地完成流程引擎的整合 ###整合步骤 ####1).依赖包整...

snakerflow ⋅ 2014/11/30 ⋅ 0

Jersey+Spring:解决Jersey单实例问题

Jersey是一款优秀的webservice框架,它同时支持soap和rest两种协议,而且系出名门(oracle)。美中不足的是:Jersey是基于Servlet实现的,具有Servlet的单例特性,有线程安全问题的隐患(这点跟...

liangtee ⋅ 2012/10/03 ⋅ 0

设计模式学习笔记-工厂模式

工厂模式 设计模式学习笔记-工厂模式 交流或更多内容请关注我的公众号:nezha_blog 我的技术博客:https://nezha.github.io 微信公众号 介绍简单工厂模式之前先通过一个披萨项目的例子来引出...

哪吒小子 ⋅ 2017/12/08 ⋅ 0

Confluence 6 数据库整合的限制

数据库整合的限制 注意: Confluence 自带的 XML 方式导出方法并不适用于备份和整合大数据集。这里有一些第三方的数据库工具你可以使用能够帮助你对大数据集进行备份和整合。如果你在选择正确...

honeymose ⋅ 06/05 ⋅ 0

kafka学习(四)---- Kafka整合SpringMVC实例(二)

目前没有很好的整合Kafka的案例,自己参考着使用spring-integration-kafka框架写了一个:Kafka整合SpringMVC实例,但同时也发现官方文档也不全,所以又用spring简单的实现了一下,感觉这个比...

火龙战士 ⋅ 2016/08/23 ⋅ 13

Activiti 5.3:配置与 Spring 整合

Activiti 5.3与Spring整合也比较简单,其基本思想就是,通过Spring的IOC容器来管理Activiti的流程引擎实例以及相关服务,可见,主要是基于Activiti在与Spring整合上努力上,做好配置即可。这...

鉴客 ⋅ 2012/02/26 ⋅ 0

SSH2+spring security 3.X

求助!SSH2+spring security 整合实例(如何整合在一起!我表示有点凌乱),最好有demo版的最好!在这里先谢过了! 十分感谢!第一次提问!希望各位指教耶!谢谢!

Beyond-Bit ⋅ 2012/06/25 ⋅ 8

Mybatis-spring整合源码解析

原文:http://my.oschina.net/doctor2014/blog/411594 Mybatis整合spring,主要通过两种途径:一种是基于xml配置的,一种基于java config 配置。 一种是基于xml配置的。这种方式通过解析xml...

Beaver_ ⋅ 2015/05/07 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

SpringCloud 微服务 (六) 服务通信 RestTemplate

壹 通信的方式主要有两种,Http 和 RPC SpringCloud使用的是Http方式通信, Dubbo的通信方式是RPC 记录学习SpringCloud的restful方式: RestTemplate (本篇)、Feign 贰 RestTemplate 类似 Http...

___大侠 ⋅ 9分钟前 ⋅ 0

React创建组件的三种方式

1.无状态函数式组建 无状态函数式组件,也就是你无法使用State,也无法使用组件的生命周期方法,这就决定了函数组件都是展示性组件,接收Props,渲染DOM,而不关注其他逻辑。 无状态函数式组...

kimyeongnam ⋅ 16分钟前 ⋅ 0

react 判断实例类型

今天在写组件的时候想通过判断内部子元素不同而在父元素上应用不同的class,于是首先要解决的就是如何判断子元素的类型。 这里附上一个讲的很全面的文章: https://www.cnblogs.com/onepixel...

球球 ⋅ 22分钟前 ⋅ 0

Centos7备份数据到百度网盘

一、关于 有时候我们需要进行数据备份,如果能自动将数据备份到百度网盘,那将会非常方便。百度网盘有较大的存储空间,而且不怕数据丢失,安全可靠。下面简单的总结一下如何使用 bypy 实现百...

zctzl ⋅ 36分钟前 ⋅ 0

开启远程SSH

SSH默认没有开启账号密码登陆,需要再配置表中修改: vim /etc/ssh/sshd_configPermitRootLogin yes #是否可以使用root账户登陆PasswordAuthentication yes #是都开启密码登陆ser...

Kefy ⋅ 39分钟前 ⋅ 0

Zookeeper3.4.11+Hadoop2.7.6+Hbase2.0.0搭建分布式集群

有段时间没更新博客了,趁着最近有点时间,来完成之前关于集群部署方面的知识。今天主要讲一讲Zookeeper+Hadoop+Hbase分布式集群的搭建,在我前几篇的集群搭建的博客中已经分别讲过了Zookeep...

海岸线的曙光 ⋅ 47分钟前 ⋅ 0

js保留两位小数方法总结

本文是小编针对js保留两位小数这个大家经常遇到的经典问题整理了在各种情况下的函数写法以及遇到问题的分析,以下是全部内容: 一、我们首先从经典的“四舍五入”算法讲起 1、四舍五入的情况...

孟飞阳 ⋅ 今天 ⋅ 0

python log

python log 处理方式 log_demo.py: 日志代码。 #! /usr/bin/env python# -*- coding: utf-8 -*-# __author__ = "Q1mi""""logging配置"""import osimport logging.config# 定义三种......

inidcard ⋅ 今天 ⋅ 0

mysql 中的信息数据库以及 shell 查询 sql

Information_schema 是 MySQL 自带的信息数据库,里面的“表”保存着服务器当前的实时信息。它提供了访问数据库元数据的方式。 什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,...

blackfoxya ⋅ 今天 ⋅ 0

maven配置阿里云镜像享受飞的感觉

1.在maven目录下的conf/setting.xml中找到mirrors添加如下内容,对所有使用改maven打包的项目生效。 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.al......

kalnkaya ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部