工程目录结构:

配置pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cq</groupId><artifactId>springMVC</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><build/>
<dependencies><!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->    <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.3.3.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-orm --><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>4.3.3.RELEASE</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version></dependency><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.4.3</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.4.3</version></dependency><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency><dependency><groupId>com.oracle</groupId><artifactId>ojdbc6</artifactId><version>3.3</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.21</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>4.3.9.Final</version></dependency></dependencies>
</project>

配置application-core.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:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:util="http://www.springframework.org/schema/util" xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><bean id="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass"value="oracle.jdbc.driver.OracleDriver"></property><property name="jdbcUrl"value="jdbc:oracle:thin:@localhost:1521:xe"></property><property name="user" value="cq"></property><property name="password" value="123456"></property><property name="minPoolSize"><value>1</value></property><property name="maxPoolSize"><value>20</value></property><property name="maxIdleTime"><value>1800</value></property><property name="acquireIncrement"><value>2</value></property><property name="maxStatements"><value>0</value></property><property name="initialPoolSize"><value>2</value></property><property name="idleConnectionTestPeriod"><value>1800</value></property><property name="acquireRetryAttempts"><value>30</value></property><property name="breakAfterAcquireFailure"><value>true</value></property><property name="testConnectionOnCheckout"><value>false</value></property></bean><bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource"></property><property name="hibernateProperties"><props><prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate4.SpringSessionContext</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop></props></property><property name="packagesToScan"><list><value>com.it.bean</value></list></property></bean>
<!-- 事务管理器 --><bean id="htm" class="org.springframework.orm.hibernate4.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory"></property></bean><!-- 事务管理的注解驱动 --><tx:annotation-driven transaction-manager="htm"/> <!-- spring 扫描 --><context:component-scan base-package="com.it"></context:component-scan><!-- mvc注解驱动 --><mvc:annotation-driven /><!--通用视图解析器 --><bean id="viewResolverCommon" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/views/" /><property name="suffix" value=".jsp" /></bean>
<mvc:resources location="/static/" mapping="/static/**"
cache-period="3600" /></beans>

配置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_2_5.xsd" version="2.5"><display-name>ssh_pri</display-name><context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:application-*.xml </param-value></context-param>
<!-- 配置监听以实例化Spring上下文 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 编码 --><filter><filter-name>characterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
<!-- hibernate 的session在request中有效 --><filter><filter-name>lazyLoadingFilter</filter-name><filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class></filter><filter-mapping><filter-name>lazyLoadingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
<!-- springmvc 前端控制器 --><servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value></param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcher</servlet-name><url-pattern>/</url-pattern></servlet-mapping>  <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>
</web-app>

配置log4j.properties

#log level
log4j.rootLogger=info,R,stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%d %5p (%c:%L) - %m%n#Log4j提供的appender有以下几种:
#org.apache.log4j.ConsoleAppender(控制台),
#org.apache.log4j.FileAppender(文件),
#org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
#org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
#org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)#log4j.appender.stdout=org.apache.log4j.ConsoleAppender#其中log4j提供4种布局.
#org.apache.log4j.HTMLLayout(以HTML表格形式布局)
#org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
#org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
#org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout# Pattern to output the caller's file name and line number.
# log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
# Print the date in ISO 8601 format
#log4j.appender.stdout.layout.ConversionPattern==%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n#log4j.appender.stdout.layout.ConversionPattern=[%t-%d{HH\:mm\:ss} (%F\:%L)] %m%n #R 输出到文件 RollingFileAppender的扩展,可以提供一种日志的备份功能。
#log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender#日志文件的名称
log4j.appender.R.File=d:/logs.log#日志文件的大小
log4j.appender.R.Append=true# Keep one backup file
#保存一个备份文件
log4j.appender.R.Threshold=INFOlog4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern=[NEOP]%-d{yyyy-MM-dd HH:mm:ss} (%c:%L)(%t) [%p] %m%nlog4j.appender.R.DatePattern='.'yyyy-MM-dd'.log'
# Print only messages of level WARN or above in the package com.foo.
log4j.logger.org.apache=INFO
log4j.logger.org.mybatis=INFO
log4j.logger.com.ibatis=INFO
log4j.logger.java.sql=INFO
log4j.logger.org.springframework=INFO

bean

Student

package com.it.bean;import java.io.Serializable;import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;@Entity
@Table(name="Student")
public class Student implements Serializable {@Id@Column(name="stu_id")private String stu_id;@Column(name="stu_pwd")private String stu_pwd;@Column(name="stu_name")private String stu_name;@Column(name="stu_sex")private String stu_sex;@Column(name="stu_age")private String stu_age;@Column(name="stu_addr")private String stu_addr;public String getStu_id() {return stu_id;}public void setStu_id(String stu_id) {this.stu_id = stu_id;}public String getStu_pwd() {return stu_pwd;}public void setStu_pwd(String stu_pwd) {this.stu_pwd = stu_pwd;}public String getStu_name() {return stu_name;}public void setStu_name(String stu_name) {this.stu_name = stu_name;}public String getStu_sex() {return stu_sex;}public void setStu_sex(String stu_sex) {this.stu_sex = stu_sex;}public String getStu_age() {return stu_age;}public void setStu_age(String stu_age) {this.stu_age = stu_age;}public String getStu_addr() {return stu_addr;}public void setStu_addr(String stu_addr) {this.stu_addr = stu_addr;}public Student(String stu_id, String stu_pwd, String stu_name,String stu_sex, String stu_age, String stu_addr) {super();this.stu_id = stu_id;this.stu_pwd = stu_pwd;this.stu_name = stu_name;this.stu_sex = stu_sex;this.stu_age = stu_age;this.stu_addr = stu_addr;}public Student() {super();// TODO Auto-generated constructor stub}}

dao

BaseDAO

package com.it.dao;import java.util.List;import javax.annotation.Resource;import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate4.support.HibernateDaoSupport;import com.it.bean.Student;public class BaseDAO<E> extends HibernateDaoSupport{@Resource public void setSuperSessionFactory(SessionFactory sessionFactory){super.setSessionFactory(sessionFactory);}public void add(E e){this.getHibernateTemplate().save(e);}public void del(E e){this.getHibernateTemplate().delete(e);}public void upd(E e){this.getHibernateTemplate().update(e);}@SuppressWarnings("unchecked")public List<E> findAll(String hql){return (List<E>) this.getHibernateTemplate().find(hql);}@SuppressWarnings("unchecked")public E findById(String stu_id){E e=(E) this.getHibernateTemplate().get(Student.class, stu_id);return e;}
}

StudentDAO

package com.it.dao;import java.util.List;import org.springframework.stereotype.Repository;import com.it.bean.Student;@Repository(value="studao")
public class StudentDAO extends BaseDAO<Student>{public void add(Student stu){super.add(stu);}public void upd(Student stu){super.upd(stu);}public void del(Student stu){super.del(stu);}public List<Student> findAll(Student stu){String hql="from Student";return super.findAll(hql);}}

service

StudentService

package com.it.service;import java.util.List;import javax.annotation.Resource;
import javax.transaction.Transactional;import org.springframework.stereotype.Service;import com.it.bean.Student;
import com.it.dao.StudentDAO;@Service(value="stusv")
public class StudentService {@Resource(name="studao")private StudentDAO studao;@Transactionalpublic void add(Student stu){studao.add(stu);}@Transactionalpublic void upd(Student stu){studao.upd(stu);}@Transactionalpublic void del(Student stu){studao.del(stu);}@Transactionalpublic List<Student> findAll(Student stu){return studao.findAll(stu);}@Transactionalpublic Student findById(String stu_id){return (Student)studao.findById(stu_id);}
}

action

StudentAction

package com.it.action;import java.util.List;import javax.annotation.Resource;
import javax.servlet.http.HttpSession;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;import com.it.bean.Student;
import com.it.service.StudentService;@Controller
public class StudentAction {@Resource(name="stusv")private StudentService stusv;@RequestMapping("/add")public String add(Student stu){System.out.println("---------1------");stusv.add(stu);return "redirect:/show";}@RequestMapping("/upd")public String upd(Student stu){System.out.println("---------1------");stusv.upd(stu);return "redirect:/show.do";}@RequestMapping("/del")public String del(Student stu){System.out.println("---------1------");stusv.del(stu);return "redirect:/show.do";}@RequestMapping("/show")public ModelAndView findAll(Student stu){System.out.println("----------2----------");List<Student> list=this.stusv.findAll(stu);ModelAndView mv=new ModelAndView("show");mv.addObject("list", list);return mv;}@RequestMapping("/findById")public String findById(HttpSession session,String stu_id){System.out.println("----------3----------");Student stu=this.stusv.findById(stu_id);System.out.println("----------4---------");session.setAttribute("stu", stu);return "upd";}
}

jsp

add.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'add.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><form action="add" method="post">ID:<input type="text" name="stu_id"/><br>PWD:<input type="text" name="stu_pwd"/><br>NAME:<input type="text" name="stu_name"/><br>SEX:<input type="text" name="stu_sex"/><br>AGE:<input type="text" name="stu_age"/><br>ADDR:<input type="text" name="stu_addr"/><br><input type="submit" value="添加"/></form></body>
</html>

show.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'show.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--><script type="text/javascript">function openLogin(){document.getElementById("win").style.display="";}function closeLogin(){document.getElementById("win").style.display="none";}</script></head><body><table><tr><td>编号</td><td>密码</td><td>姓名</td><td>性别</td><td>年龄</td><td>地址</td><td>操作</td><td><a href="add.jsp" id="add">添加</a></td></tr><c:forEach items="${list }" var="l"><tr><td>${l.stu_id }</td><td>${l.stu_pwd }</td><td>${l.stu_name }</td><td>${l.stu_sex }</td><td>${l.stu_age }</td><td>${l.stu_addr }</td><td><a href="del.do?stu_id=${l.stu_id }">删除</a></td><td><a href="findById.do?stu_id=${l.stu_id }">修改</a></td></tr></c:forEach><a href="stu/show.action?currentPage=${(currentPage-1)<=1?1:(currentPage-1)}"><<       </a><a href="stu/show.action?currentPage=${(currentPage+1)>totalPage?totalPage:(currentPage+1)}">       >></a></table></body>
</html>

upd.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'MyJsp.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><form action="upd" method="post">ID:<input type="text" name="stu_id" value="${stu.stu_id}"/><br>PWD:<input type="text" name="stu_pwd" value="${stu.stu_pwd}"/><br>NAME:<input type="text" name="stu_name" value="${stu.stu_name}"/><br>SEX:<input type="text" name="stu_sex" value="${ stu.stu_sex}"/><br>AGE:<input type="text" name="stu_age" value="${ stu.stu_age}"/><br>ADDR:<input type="text" name="stu_addr" value="${ stu.stu_addr}"/><br><input type="submit" value="修改"/></form></body>
</html>

ssh整合(spring+springmvc+hibernate)相关推荐

  1. Spring+SpringMvc+Hibernate(SSH)+bootstrap/Jsp整合

    文章目录 前言: 准备工作: 最终项目的目录结构: 源码 一.使用idea创建web app项目 二.导包 三.SpringMVC配置 第一步:配置spring-mvc.xml 第二步:配置 web. ...

  2. spring+springmvc+hibernate 整合

    三大框架反反复复搭了很多次,虽然每次都能搭起来,但是效率不高.最近重新搭了一次,理顺了思路,整理了需要注意的地方,分享出来. 工具:Eclipse(jdk 1.7) spring和hibernate版 ...

  3. Spring+SpringMVC+Hibernate整合(封装CRUD操作)

    前言:当前Web项目开发的框架主流应该非Spring+SpringMVC+Hibernate莫属,不管是工作还是学习中涉及框架技术,首先是要搭建一套运行环境,虽然网上框架整合的教程很多,但我还是输出此 ...

  4. Spring+SpringMVC+Hibernate整合操作数据库 概述

    概述 Hibernate是一款优秀的ORM框架,能够连接并操作数据库,包括保存和修改数据.Spring MVC是Java的web框架,能够将Hibernate集成进去,完成数据的CRUD.Hibern ...

  5. Spring+SpringMvc+Hibernate 框架搭建

    2019独角兽企业重金招聘Python工程师标准>>> 框架篇:Spring+SpringMVC+hibernate整合开发 一.建立项目 1.新建一个空项目project 相当于e ...

  6. java project整合spring和hibernate

    web工程整合ssh已经很多例子了,本例目前为java project,所以要整合spring和hibernate. spring版本是3.0.6 hibernate版本是3.3.0 project架 ...

  7. Spring+SpringMVC+Hibernate实现投票/调查问卷网站

    使用SSH架构(Spring+SpringMVC+Hibernate)实现了简单的调查问卷网站.最终效果如图: 下面整理实现流程. 前言 1.SSH架构 SSH是MVC架构的一种实现. Spring. ...

  8. 基于Spring+SpringMvc+Hibernate的咔咔发廊管理系统

    基于Spring+SpringMvc+Hibernate的咔咔发廊管理系统 基于Spring+SpringMvc+Hibernate的家政服务网-java家政服务网 1.包含源程序,数据库脚本.代码和 ...

  9. 基于Spring+SpringMVC+hibernate实现的体检中心管理系统

    源码及论文下载: http://www.byamd.xyz/tag/java/ 摘 要 随着人们生活水平的不断提高,人们的保健意识随之增强,体检已普遍成为人们保健的重要部分.特殊职业的体检.各种职业病 ...

  10. java+jsp+mysql实现汽车销售管理系统CarSaleManageSystem 前台买家 后台卖家 SSH(spring+struts+hibernate)开发框架

    java+jsp+mysql实现汽车销售管理系统CarSaleManageSystem 项目简介 系统分前台和后台 前台是普通用户可以注册.登陆.修改个人信息.修改密码.浏览汽车.添加个人购车信息.查 ...

最新文章

  1. python装饰器由浅入深_由浅入深,走进Python装饰器-----第五篇:进阶--类装饰类
  2. 方舟编译器服务器端Java怎么用_方舟编译器可以运行Hello World了!
  3. python绘图时的分解问题的步骤-零基础学python-15.2 分解函数
  4. SpringBoot + Shiro 缓存记住密码
  5. 双向链表的C++类模板实现
  6. Excel按照日期排序,有截图
  7. 主页所停留的时间实现交互
  8. Source does not fit in dest
  9. CCF202006-3 Markdown渲染器(100分)【文本处理】
  10. Git教程_2 所有操作讲解
  11. 15分钟破解保险箱!美国小哥200美元自制开锁机器人
  12. Xamarin学习笔记之尝试篇
  13. 360 se html document 广告,广告拦截 - 360极速浏览器
  14. 河北省级环保督察回头看全覆盖 大气污染问题成举报重点
  15. iqooneo系统升级好不好_vivo iQOO手机系统更新好吗?
  16. LinuxStudyNote(39)-Linux软件包管理(1)-Linux软件包简介之源码包与RPM包、源码包的优缺点、RPM二进制包的优缺点
  17. Nehe教程16课雾
  18. gridview的ButtonField
  19. 数据结构与算法-Prim算法解析与解决修路最小生成树问题
  20. 目标检测之五:随机权值平均(Stochastic Weight Averaging,SWA)---木有看懂

热门文章

  1. 小程序中如何关注公众号
  2. iOS软件源怎么找,怎么下载/签名安装?
  3. 冯诺依曼 计算机名言,约翰.冯.诺依曼名言
  4. 恰星V3S投影仪好不好?适合学生党购入么?
  5. Java三兄弟之继承
  6. 虚拟机与宿主机网络互通配置
  7. Understanding the Users and Videos by Mining a Novel Danmu Dataset
  8. 验证码短信收不到的原因及解决办法
  9. Linux下看股票行情的绿色小软件
  10. 【蓝桥杯】大臣的旅费