- 浏览: 750936 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
webcover:
最新的中文网络记事本: 破笔记
网络记事本:http://w ...
五个最佳的免费网络记事本 -
fred_nxh:
很好,长见识了
java中堆(heap)和堆栈(stack)有什么区别 -
efeige:
兄弟,请问一下,为什么我的2003系统 网站属性 里面没有“服 ...
启用IIS Gzip 页面压缩技术 加速网页的浏览速度 -
252401762:
同样的问题啊,不知道楼主是否已经转做售前了
售前和 开发的选择 -
yuan:
膜拜玩静电的现在呢?
来回顾一下,当年的“发烧史”吧:
做了好久经的spring+hibernate 只是用spring管理hibernate,但一直没有研究SpringMVC +Hibetate,所以
最近有时间 准备用springMVC + Spring + Hibernate 自己作个例子(SrpingMVC 也属于Spring 为了与那些只用Spring管理Hibernate的有点区别所以没有取名Spring+Hibernate)。希望对大家有帮助。
一,采用工具:eclipse, 数据库 oracle.
二,必须包有:
hibernate包:hibernate.jar,ehcache-1.1.jar,c3p0-0.8.5.2.jar,cglib-nodep-2.1.jar
spring包:spring.jar,spring-web.jar
common包:commons-lang.jar,commons-logging.jar,commons-collections.jar
dom4j包:dom4j-1.6.jar
junit包:junit.jar
oracle 驱动包:ojdbc14.zip,不知道为什么tomcat 不认识这个包呢 非的要改成 ojdbc.jar
jstl包:jstl.jar
jta: jta.jar
三,hibernate映射文件是采用Middlegen-Hibernate-r5 从数据库生成,然后根据映射文件,生成对应数据库的javabean
Middlegen-Hibernate-r5 配置说明:
1,首先是下载 Middlegen-Hibernate-r5 地址:http://sourceforge.net/project/showfiles.php?group_id=40712&package_id=84728
2,下载后,以下是需要修改的地方,build.xml中
<!DOCTYPE project [
<!ENTITY database SYSTEM "file:./config/database/hsqldb.xml">
]>
改成
<!DOCTYPE project [
<!ENTITY database SYSTEM "file:./config/database/oracle.xml">
]>
3修改Middlegen-Hibernate-r5\config\database\oracle.xml 的配置:
<property environment="env"/>
<property name="database.script.file" value="${src.dir}/sql/${name}-oracle.sql"/>
<property name="database.driver.file" value="${env.ORACLE_HOME}/jdbc/lib/classes12.jar"/>
<property name="database.driver.classpath" value="${database.driver.file}"/>
<property name="database.driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="database.url" value="jdbc:oracle:thin:@localhost:1521:<ORASID>"/>
<property name="database.userid" value="scott"/>
<property name="database.password" value="tiger"/>
<property name="database.schema" value=""/>
<property name="database.catalog" value=""/>
<!--property name="jboss.datasource.mapping" value="Oracle7"/-->
<property name="jboss.datasource.mapping" value="Oracle8"/>
<!--property name="jboss.datasource.mapping" value="Oracle9i"/-->
改成你自己的,如下是我的
<property environment="env"/>
<property name="database.script.file" value="${src.dir}/sql/${name}-oracle.sql"/>
<property name="database.driver.file" value="D:/XTZH/XTZH_AH/公共组件/公共jar包/oracle/ojdbc14.zip"/>
<property name="database.driver.classpath" value="${database.driver.file}"/>
<property name="database.driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="database.url" value="jdbc:oracle:thin:@localhost:1521:GCR"/>
<property name="database.userid" value="guocr"/>
<property name="database.password" value="123456"/>
<property name="database.schema" value="guocr"/>
<property name="database.catalog" value=""/>
<property name="jboss.datasource.mapping" value="Oracle9i"/>
4,修改 build.xml 下面的 middlegen 命令下面的
<hibernate
destination="${build.gen-src.dir}"
package="com.guocr.forum.domain"
genXDocletTags="false"
genIntergratedCompositeKeys="false"
javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"
/>
package="com.guocr.forum.domain" 改称你自己的包名称
这些配好后就可以用 ant 运行 middlegen 就可以生成映射文件了, 然后运行hbm2java 就可以生成对应的javabean 文件
四,生成映射文件和对应数据库中的java文件后,开始配置spring bean 管理配置文件。在这里由于时间问题就不多讲配置文件了, 如有问题可以给我消息联系。
我在这里取名为config/ForumServiceBeans.xml
以下是全部配置文件。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!--
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"><value>oracle.jdbc.driver.OracleDriver</value></property>
<property name="url"><value>jdbc:oracle:thin:@localhost:1521:GCR</value></property>
<property name="username"><value>guocr</value></property>-->
<!-- Make sure <value> tags are on same line - if they're not,
authentication will fail -->
<!-- <property name="password"><value>123456</value></property>
</bean> -->
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="jdbcUrl">
<value>jdbc:oracle:thin:@localhost:1521:GCR</value>
</property>
<property name="user">
<value>guocr</value>
</property>
<property name="password">
<value>123456</value>
</property>
<property name="minPoolSize">
<value>5</value>
</property>
<property name="maxPoolSize">
<value>20</value>
</property>
<property name="maxIdleTime">
<value>1800</value>
</property>
</bean>
<!-- Hibernate SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource"><ref local="dataSource"/></property>
<property name="mappingResources">
<list>
<value>com/guocr/forum/domain/User.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
<!-- <prop key="hibernate.hbm2ddl.auto">update</prop>-->
</props>
</property>
</bean>
<!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory"><ref local="sessionFactory"/></property>
</bean>
<!-- Transaction manager that delegates to JTA (for a transactional JNDI DataSource)-->
<!--
<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"/>
-->
<bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="update*">
PROPAGATION_REQUIRED,-Exception
</prop>
<prop key="delete*">
PROPAGATION_REQUIRED,-Exception
</prop>
<prop key="comeBackHistoryConfig*">
PROPAGATION_REQUIRED,-Exception
</prop>
<prop key="query*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<bean id="userDAOTarget" class="com.guocr.forum.dao.hiberante.impl.UserDAO">
<property name="sessionFactory"><ref local="sessionFactory"/></property>
</bean>
<bean id="userDAO" parent="baseTransactionProxy">
<property name="target">
<ref local="userDAOTarget"/>
</property>
</bean>
<!--
<bean id="userManagerTarget" class="org.appfuse.service.impl.UserManagerImpl">
<property name="userDAO"><ref local="userDAO"/></property>
</bean>
-->
<!--
<bean id="userManager"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager"><ref local="transactionManager"/></property>
<property name="target"><ref local="userManagerTarget"/></property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
-->
</beans>
五,下面开始写Spring MVC 框架
1、首先配置 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
配完 web.xml 之后,spring会自动找 action-servlet.xml ,为什么 去找action-servlet.xml,其实是找/WEB-INF/<servlet-name>-servlet.xml,
在这里我们的servlet-name是action,所以找action-servlet.xml.如果不希望让他自动去找 action-servlet.xml也可以自己指定,如下指定
了Confing.xml
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/Config.xml</param-value>
</init-param>
</servlet>
2、
我是按默认的去找action-servlet.xml 下面开始建action-servlet.xml
这个是类似ForumServiceBeans.xml ,应该可以与ForumServiceBeans.xml 合在一起,还没有测。
下面是我建的action-servlet.xml.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!--
<bean id="userController" class="org.appfuse.web.UserController">
<property name="userManager" ref="userManager"/>
</bean>
<bean id="userFormController" class="org.appfuse.web.UserFormController">
<property name="commandName" value="user"/>
<property name="validator" ref="beanValidator"/>
<property name="formView" value="userForm"/>
<property name="successView" value="redirect:users.html"/>
<property name="userManager" ref="userManager"/>
</bean>
-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/work/"/>
<property name="suffix" value=".jsp"/>
</bean>
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/work/login.do">LoginAction</prop>
</props>
</property>
</bean>
<bean id="LoginAction"
class="com.guocr.forum.service.LoginAction">
<property name="commandClass">
<value>com.guocr.forum.domain.User</value>
</property>
<property name="fail_view">
<value>loginfail</value>
</property>
<property name="success_view">
<value>main</value>
</property>
</bean>
<!--
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/users.html">userController</prop>
<prop key="/editUser.html">userFormController</prop>
</props>
</property>
</bean>
-->
<!--
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="messages"/>
<property name="useCodeAsDefaultMessage" value="true"/>
</bean>
<bean id="validatorFactory" class="org.springmodules.commons.validator.DefaultValidatorFactory">
<property name="validationConfigLocations">
<list>
<value>/WEB-INF/validator-rules.xml</value>
<value>/WEB-INF/validation.xml</value>
</list>
</property>
</bean>
<bean id="beanValidator" class="org.springmodules.commons.validator.DefaultBeanValidator">
<property name="validatorFactory" ref="validatorFactory"/>
</bean>
-->
</beans>
有时间再补详细点。
3、开始建jsp,java类等
注册页面 register.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
<head>
<TITLE>注册会员</TITLE>
<% request.setCharacterEncoding("GBK");
%>
</head>
<body onload="">
<form method="POST" action="login.do" >
<br>
<table width="98%" cellpadding="2" cellspacing="1" class="blove" align="center">
<tr height="20"><td align="right">会员名:</td><td><input type="text" name="name" maxlength=100 ></td></tr>
<tr height="20" ><td align="right">密码:</td><td><input type="password" name="password" maxlength=255 ></td></tr>
<tr height="20" ><td align="right">确认密码:</td><td><input type="password" name="password_two" maxlength=255 ></td></tr>
</table>
<br>
<table width="20%" cellpadding="2" cellspacing="1" bgColor="F4F9FC" align="center">
<tr>
<td><input type="submit" value="保存" name="B1"></td>
</tr>
</table>
</form>
</body>
</html>
bean 管理配置管理类 ForumServiceFactory
package com.guocr.forum.service;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import com.guocr.forum.dao.hiberante.IUserDAO;
/**
* 2006-06-10
*
* <p>Title: BEAN 管理服务实现类 </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author guocr
*
* @version 1.0
*/
public class ForumServiceFactory {
/** 应用程序内容 */
private ApplicationContext factory = null;
/** 服务工厂 */
private static ForumServiceFactory instance;
/** 指定配置文件路径 */
private static final String FORUM_CLIENT_BEAN_FILE = "config/ForumServiceBeans.xml";
private ForumServiceFactory() {
this.factory = new FileSystemXmlApplicationContext(
new String[] { FORUM_CLIENT_BEAN_FILE });
}
/**
* 返回工厂实例.
*
* @return 工厂实例
*/
public static ForumServiceFactory getInstance() {
if (instance == null) {
instance = new ForumServiceFactory();
}
return instance;
}
public IUserDAO getUserDAO(){
return (IUserDAO) this.factory
.getBean("userDAO");
}
}
package com.guocr.forum.service;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
import com.guocr.forum.domain.User;
/**
* 2006-06-12
*
* <p>Title: 用户基本信息业务类 </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author guocr
*
* @version 1.0
*/
public class LoginAction extends SimpleFormController {
public void LoginAction(){
}
private String fail_view;
private String success_view;
public String getFail_view() {
return fail_view;
}
public void setFail_view(String fail_view) {
this.fail_view = fail_view;
}
public String getSuccess_view() {
return success_view;
}
public void setSuccess_view(String success_view) {
this.success_view = success_view;
}
protected ModelAndView onSubmit(Object cmd, BindException ex)
throws Exception {
User user =(User)cmd;
System.out.println("user==="+user.getName());
System.out.println("password==="+user.getPassword());
//user.setRegisterdate("2006-06-11 09:46:50");
//Date b=new Date();
//user.setRegisterdate(b.toLocaleString());
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
user.setRegisterdate(sdf.format(date));
ForumServiceFactory.getInstance().getUserDAO().saveUser(user);
System.out.println("this.getSuccessView()"+this.getSuccessView());
System.out.println("getSuccess_view"+this.getSuccess_view());
return new ModelAndView(this.getSuccess_view());
}
}
package com.guocr.forum.dao.hiberante;
import java.util.List;
import com.guocr.forum.domain.User;
/**
* 2006-06-10
*
* <p>Title: 用户基本信息 </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author guocr
*
* @version 1.0
*/
public interface IUserDAO {
/**
* 返回用户信息
* @param userName 用户姓名
* @return 返回用户信息
* @throws Exception
*/
public User getUser(String userName)throws Exception;
/**
* 返回全部用户基本信息
* @return
* @throws Exception
*/
public List getUsers() throws Exception;
/**
* 保存用户
* @throws Exception
*/
public void saveUser(User user) throws Exception;
/**
* 修改用户信息
* @throws Exception
*/
public void updateUser (User user) throws Exception;
}
package com.guocr.forum.dao.hiberante.impl;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.guocr.forum.dao.hiberante.IUserDAO;
import com.guocr.forum.domain.User;
/**
* 2006-06-10
*
* <p>Title: 用户基本信息实现类 </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author guocr
*
* @version 1.0
*/
public class UserDAO extends HibernateDaoSupport implements IUserDAO {
public User getUser(String userName) throws Exception {
User user = (User)this.getHibernateTemplate().get(User.class,userName);
return user;
}
public List getUsers() throws Exception {
return null;
}
public void saveUser(User user) throws Exception {
this.getHibernateTemplate().save(user);
}
public void updateUser(User user) throws Exception {
this.getHibernateTemplate().update(user);
}
}
发表评论
-
ocx插件插入网页实现自动更新与安装注册
2010-07-27 16:17 6579ocx插件插入网页实现 ... -
JIRA
2010-04-02 16:28 1180JIRA 百科名片 JIRA是集项目计划、任务分配、需求管 ... -
ArrayList和LinkedList的用法区别
2010-03-17 10:58 1840ArrayList和LinkedList的用法区别 (2 ... -
Java 中Vector、ArrayList和LinkedList 的区别时间
2010-03-17 10:25 1660Java 中Vector、ArrayList和LinkedLi ... -
多层架构的Web开发框架模型
2010-03-14 00:31 1913摘要:在经典的J2EE四层体系结构的基础上增加数据持久层,提出 ... -
Java语言编码规范(Java Code Conventions
2010-03-08 01:17 7541 介绍(Introduction)1.1 为什么要有编码规范 ... -
IT 的规划
2010-02-21 21:07 744本文说的这位网友,在I ... -
记忆学
2010-02-10 00:50 638http://bbs.jiyifa.cn/read.php?t ... -
java析构函数替代者finalize()解说
2010-01-21 22:18 2502java析构函数替代者finali ... -
Java的GC机制总结(0) ---finalize()方法
2010-01-21 22:00 1180其实了解JAVA的人,都知道JAVA的GC机制是其的一大优点, ... -
Java认证考试
2010-01-14 12:30 814Java认证考试 关于Java方面,Sun推出四项认证:Su ... -
集合框架
2010-01-13 23:24 623java 集合框架 对象的集合 如果程序的 ... -
Java集合框架使用总结
2010-01-13 21:31 639Java集合框架使用总结 ... -
关于JAVA中的线程安全
2010-01-13 10:34 1515关于JAVA中的线程安全 ... -
Java 理论与实践: 并发集合类
2010-01-13 01:27 755DougLea的 util.concurrent 包除了包含许 ... -
java main 主函数
2010-01-10 14:28 2294java主函数一般定义如下:public static ... -
java新式for循环
2009-12-29 15:51 764java新式for循环 2008-08-04 13:48:2 ... -
2009年的Java技术发展趋势展望
2009-11-08 21:28 734已经有14岁的Java在日新月异的IT技术领域内不算年轻,但它 ... -
MyEclipse要注册
2009-11-07 18:37 1671yEclipse怎么注册都不知道。我说他没有注册,他硬要说已经 ... -
浅谈设计模式在JAVA中的具体运用
2009-10-27 23:32 920浅谈设计模式在JAVA ...
相关推荐
ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ...
ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ...
ssh高级ssh高级ssh高级ssh高级ssh高级ssh高级ssh高级ssh高级
ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh...
ssh,ssh集成,ssh,ssh集成 ssh集成
SSH源框架SSH源框架SSH源框架SSH源框架SSH源框架SSH源框架
ssh整合的讲解ssh整合的讲解ssh整合的讲解ssh整合的讲解
SSH SSH SSH SSH SSH SSH SSH SSH SSH SSH SSH SSH
SSH详细教SSH详细教程SSH详细教程SSH详细教程SSH详细教程SSH详细教程SSH详细教程SSH详细教程SSH详细教程SSH详细教程SSH详细教程SSH详细教程SSH详细教程SSH详细教程SSH详细教程SSH详细教程
记录一下ssh离线升级版本(有openssh8.8安装包和依赖),redhad的ssh7.4升级到8.8,不用卸载旧版本ssh直接替换历史版本,迁移密钥重启ssh。有一定危险,我这有安全限制不能用telnet连接,需要多开几个ssh连接已被...
J2SSH(Java SSH API )使用文档 J2SSH(Java SSH API )使用文档 J2SSH(Java SSH API )使用文档
问题:ssh-copy-id 命令无法使用,在linux服务器的ssh服务中没有有这个命令,可以在/usr/bin/的这文件夹中查看没有这个ssh-copy-id 命令。 问题分析:是由于ssh服务的问题,可以直接将ssh-copy-id 命令拷贝/usr/...
sshshell ssh shell 服务器 远程连接 FTP for mac ssh shell 服务器 远程连接
ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整...
2020 Bitvise SSH 服务端和客户端 BvSsh Bitvise SSH Bitvise SSH Client Bitvise SSH service
SSh命令大全SSh命令大全SSh命令大全SSh命令大全SSh命令大全SSh命令大全SSh命令大全SSh命令大全SSh命令大全
iuoiwesdkjkjsddskjkjdskjdfkjfdkjfkjfkkjgfgf
里面是SSH框架搭建登录的demo,清楚的描述了SSH框架搭建过程的各种配置,另附博客地址:http://blog.csdn.net/u010539352
exam SSH