03SpringMVC,Spring,Hibernate整合(Date时间转换)
项目结构
2 web.xml的配置内容如下:
<?xmlversion="1.0"encoding="UTF-8"?> <web-appversion="2.5"xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!-- struts用/*,springmvc不能/*,语法 <url-pattern>*.do</url-pattern> </servlet-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:beans.xml</param-value> </context-param> </web-app> |
springmvc.xml的配置内容如下:
<?xmlversion="1.0"encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:mvc="http://www.springframework.org/schema/mvc" 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-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd "> <context:component-scanbase-package="com.rl.controller"/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <propertyname="prefix"value="/WEB-INF/jsp/"></property> <propertyname="suffix"value=".jsp"></property> </bean> </beans> |
log4j.properties的内容如下:
log4j.rootLogger=DEBUG,Console #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d[%t]%-5p[%c]-%m%n log4j.logger.java.sql.ResultSet=INFO log4j.logger.org.apache=INFO log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG |
beans.xml的配置内容如下:
<?xmlversion="1.0"encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" 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-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> <context:component-scanbase-package="com.rl"/> <beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <propertyname="driverClassName"value="com.mysql.jdbc.Driver"></property> <propertyname="url"value="jdbc:mysql://localhost:3306/springmvc"></property> <propertyname="username"value="root"></property> <propertyname="password"value="123456"></property> </bean> <beanid="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <propertyname="dataSource"ref="dataSource"></property> <propertyname="hibernateProperties"> <props> <propkey="hibernate.Dialect">org.hibernate.dialect.MySQL5Dialect</prop> <propkey="hibernate.show_sql">true</prop> <propkey="hibernate.hbm2ddl">update</prop> </props> </property> <propertyname="mappingDirectoryLocations"value="classpath:com/rl/mapping/"></property> </bean> <beanid="txManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <propertyname="sessionFactory"ref="sessionFactory"></property> </bean> <tx:adviceid="txAdvice"transaction-manager="txManager"> <tx:attributes> <tx:methodname="save*"propagation="REQUIRED"/> <tx:methodname="get*"read-only="true"/> </tx:attributes> </tx:advice> <aop:config> <aop:advisoradvice-ref="txAdvice"pointcut="execution(* </aop:config> </beans> |
Person0420的代码如下:
package com.rl.model; import java.util.Date; @SuppressWarnings("serial") publicclass private private private private private /** * */ public } /** *@param *@param *@param *@param *@param */ public String address, Date birthday) { this.personId this.name this.gender this.address this.birthday } /** *@return */ public returnpersonId; } /** *@param */ publicvoid this.personId } /** *@return */ public returnname; } /** *@param */ publicvoid this.name } /** *@return */ public returngender; } /** *@param */ publicvoid this.gender } /** *@return */ public returnaddress; } /** *@param */ publicvoid this.address } /** *@return */ public returnbirthday; } /** *@param */ publicvoid this.birthday } } |
Person0420.hbm.xml的内容如下:
<?xmlversion="1.0"encoding="utf-8"?> <!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/Hibernate "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Mapping fileautogenerated by MyEclipse Persistence Tools --> <hibernate-mapping> <classname="com.rl.model.Person0420"table="person_0420"catalog="springmvc"> <idname="personId"type="java.lang.Integer"> <columnname="PERSON_ID"/> <generatorclass="identity"/> </id> <propertyname="name"type="java.lang.String"> <columnname="NAME"length="10"/> </property> <propertyname="gender"type="java.lang.String"> <columnname="GENDER"length="1"/> </property> <propertyname="address"type="java.lang.String"> <columnname="ADDRESS"length="50"/> </property> <propertyname="birthday"type="java.util.Date"> <columnname="BIRTHDAY"length="0"/> </property> </class> </hibernate-mapping> |
创建数据库和表所需的SQL语句:
DROP DATABASE springmvc; CREATE DATABASE springmvc DEFAULT CHARSET utf8; USE springmvc; CREATE TABLE person_0420( PERSON_ID INT AUTO_INCREMENT PRIMARY KEY, NAME VARCHAR(10) NOT NULL, GENDER VARCHAR(1) NOT NULL, ADDRESS VARCHAR(50) NOT NULL, birthday DATE ); |
PersonDao的代码如下:
package com.rl.dao; import com.rl.model.Person0420; publicinterfacePersonDao publicvoid } |
PersonDaoImpl 的内容如下:
package com.rl.dao.impl; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import org.springframework.stereotype.Repository; import com.rl.dao.PersonDao; import com.rl.model.Person0420; @Repository public class PersonDaoImpl extends HibernateDaoSupport implements PersonDao { @Autowired public void setMySessionFactory(SessionFactory sessionFactory){ super.setSessionFactory(sessionFactory); } public void save(Person0420 person) { this.getHibernateTemplate().save(person); } } |
PersonService的内容如下:
package com.rl.service; import com.rl.model.Person0420; publicinterface publicvoid } |
PersonServiceImpl的内容如下:
package com.rl.service.impl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.rl.dao.PersonDao; import com.rl.model.Person0420; import com.rl.service.PersonService; @Service public class PersonServiceImpl implements PersonService { @Autowired PersonDao personDao; public void save(Person0420 person) { personDao.save(person); } } |
PersonController的内容如下:
package com.rl.controller; import java.text.SimpleDateFormat; import java.util.Date; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.stereotype.Controller; import org.springframework.web.bind.ServletRequestDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.RequestMapping; import com.rl.model.Person0420; import com.rl.service.PersonService; @Controller @RequestMapping("/person") public class PersonController { @Autowired PersonService personService; @RequestMapping("/toForm.do") public String toForm() { return "form"; } @RequestMapping("/save.do") public String save(Person0420 person) { personService.save(person); return "success"; } @InitBinder public void initBinder(ServletRequestDataBinder binder) { binder.registerCustomEditor(Date.class, new CustomDateEditor( new SimpleDateFormat("yyyy-MM-dd"), true)); } } |
14 form.jsp的内容如下:
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPEHTMLPUBLIC <html> <head> <basehref="<%=basePath%>"> <title>My <metahttp-equiv="pragma"content="no-cache"> <metahttp-equiv="cache-control"content="no-cache"> <metahttp-equiv="expires"content="0"> <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"> <metahttp-equiv="description"content="This <!-- <linkrel="stylesheet" type="text/css" --> </head> <body> <formaction="person/save.do"method="post"> name:<inputname="name"type="text"><br> gender:<inputname="gender"type="text"><br> address:<inputname="address"type="text"><br> birthday:<inputname="birthday"type="text"><br> <inputvalue="submit"type="submit"> </form> </body> </html> |
success.jsp的内容如下:
<%@pagelanguage="java"import="java.util.*"pageEncoding="ISO-8859-1"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPEHTMLPUBLIC <html> <head> <basehref="<%=basePath%>"> <title>My <metahttp-equiv="pragma"content="no-cache"> <metahttp-equiv="cache-control"content="no-cache"> <metahttp-equiv="expires"content="0"> <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"> <metahttp-equiv="description"content="This <!-- <linkrel="stylesheet" type="text/css" --> </head> <body> success<br> </body> </html> |
浏览器中的访问地址是:http://localhost:8080/ssh/person/toForm.do
03SpringMVC,Spring,Hibernate整合(Date时间转换)的更多相关文章
- SpringMVC+Spring+Hibernate整合开发
最近突然想认真研究下java web常用框架,虽然现在一直在用,但实现的整体流程不是很了解,就在网上搜索资料,尝试自己搭建,以下是自己的搭建及测试过程. 一.准备工作: 1/安装并配置java运行环境 ...
- Spring+Hibernate整合配置 --- 比较完整的spring、hibernate 配置
Spring+Hibernate整合配置 分类: J2EE2010-11-25 17:21 16667人阅读 评论(1) 收藏 举报 springhibernateclassactionservlet ...
- spring+hibernate整合:报错org.hibernate.HibernateException: No Session found for current thread
spring+hibernate整合:报错信息如下 org.hibernate.HibernateException: No Session found for current thread at o ...
- Struts2+Spring+Hibernate整合开发(Maven多模块搭建)
Struts2+Spring+Hibernate整合开发(Maven多模块搭建) 0.项目结构 Struts2:web层 Spring:对象的容器 Hibernate:数据库持久化操作 1.父模块导入 ...
- 笔记58 Spring+Hibernate整合(一)
Spring+Hibernate整合 一.整合思路 使DAO继承HibernateTemplate这个类 HibernateTemplate这个类提供了setSessionFactory()方法用于注 ...
- MyEclipse下Spring+Hibernate整合
目前,SSH(Struts+Spring+Hibernate)是Web开发的一种常用框架组合,Struts实现了MVC,Hibernate实现了关系对象映射,Spring实现了基于Bean的配置管理. ...
- Struts+Spring+Hibernate整合入门详解
Java 5.0 Struts 2.0.9 Spring 2.0.6 Hibernate 3.2.4 作者: Liu Liu 转载请注明出处 基本概念和典型实用例子. 一.基本概念 St ...
- Spring、Struts2+Spring+Hibernate整合步骤
所使用的Jar包: Hibernate: Spring(使用MyEclipse自动导入框架功能) Struts2: 注解包和MySql驱动包: 1.配置Hibernate和Spring: <be ...
- Struts+Spring+Hibernate整合
这段笔记三两年前写的,一直因为一些琐事,或者搞忘记了,没有发.今天偶然翻出了它,就和大家一起分享下吧. 1.导入jar包 Struts的jar包: Spring的jar包: Hibernate的jar ...
随机推荐
- Linux添加系统调用的两种方法
前言 系统调用的基本原理 系统调用其实就是函数调用,只不过调用的是内核态的函数,但是我们知道,用户态是不能随意调用内核态的函数的,所以采用软中断的方式从用户态陷入到内核态.在内核中通过软中断0X80, ...
- 实现PC视频播放最强画质教程( Potplayer播放器+MADVR插件)【转】
转自:http://www.hangge.com/blog/cache/detail_1461.html 一.MADVR介绍 MADVR 是一款超强的视频插件,其配合高清播放软件,可以做到目前 PC ...
- jquery 中toggle的2种用法
一.在元素的click事件中绑定两个或两个以上的函数 toggle不像bind需要在后面添加"click"来绑定click触发事件,toggle本身就是click触发的(而且只能 ...
- Java Servlet 笔记4
Servlet 客户端 HTTP 请求 当浏览器请求网页时,它会向 Web 服务器发送特定信息,这些信息不能被直接读取,因为这些信息是作为 HTTP 请求的头的一部分进行传输的. 读取 HTTP 头的 ...
- day4 liaoxuefeng---函数式编程
一.概述: 函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数! Python对函数式编程提供部分支持.由于Python允许使用变量,因此,Python不是纯函数式编程 ...
- Angular 和 Vue 使用的对比总结 -- 脚手架
前言 之前是用Vue的,现在由于工作原因,开始使用Angular.分别是Vue2和Angular5入的坑.只是从使用上来对比总结,加深记忆,避免混淆. 什么 ? 你问实现原理的异同及优劣? 本宝宝还 ...
- iphone inline video fragments
DOMContentLoaded 它在DOM加载之后及资源加载之前被触发 通过递归调用同一方法来不断更新画面以达到动起来的效果,但它优于setTimeout/setInterval的地方在于它是由浏览 ...
- Exchange Server 2010升级到Exchange Server 2016
Hello各位小伙伴们,失踪人口回归啦~~~这次和大家分享Exchange Server 2010升级到Exchange Server 2016的方法.正式开始前先啰嗦几句,为什么我要写这篇文章呢?一 ...
- 前端性能优化之-dns预解析
预解析的实现: 1. 用meta信息来告知浏览器, 当前页面要做DNS预解析:<meta http-equiv="x-dns-prefetch-control" conten ...
- ActiveMQ消息传递的两种方式
1.什么是ActiveMQ? ActiveMQ是apache提供的开源的,实现消息传递的一个中间插件,可以和spring整合,是目前最流行的开源消息总线,ActiveMQ是一个完全支持JMS1.1和J ...