ssh框架下 对数据库的增删改查

1 、开发环境

Ø        MyEclipse6.0

Ø        JDK 1.6

Ø        Java EE 5.0

Ø        Tomcat6.0

Ø        Struts2.1

Ø        Spring2.0

Ø        Hibernate3

2 、为ssh做好准备

2.1下载包

Ø    Struts2.1包下载:http://struts.apache.org/download(现在最新版本估计已经是2.3.12了)

Ø    Hibernate3包下载:http://www.hibernate.org/

Ø    Spring2.0下载:http://www.springsource.org/download

2.2搭建开发环境

打开MyEclipse,新建一个web project,如图:(J2ee版本设为5.0)




点击Finish完成,建好的工程如图:

       

设置好你的tomcat6的路径即可,前提你要先安装好tomcat哦。还有需要注意的一点是,看到目录树tomcat6.x下面的JDK了吗?点击它,也要把tomcat的JDK设为jdk1.6才行,以与myeclipse一致。

       好了,工程已经建好了,下面就开始配置struts吧。配置之前先把struts的包下载下来哦,下载地址上面已经给出了。

3、配置Struts2.0

3.1基础配置

1)使用struts只需要把下面五个引入即可,以后用到什么jar包,再引入。


2)修改WEB-INF下的web.xml文件,增加struts2的配置。增加代码如下:这些配置代码对于struts2是不变的,直接复制到web.xml即可。

<!--  配置Struts -->
<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>

3)添加struts配置文件。 在WEB-INF/classes目录下,新建struts.xml,模版如下:

<?xml version="1.0"encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
     "-//Apache Software Foundation//DTDStruts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
</struts>

这边的2.0是要根据你自己的struts版本而定的。http://hi.baidu.com/albert02/item/e85abb44253ec336fa8960b5这个网址上面的错误就是因为版本的问题。

(以后的增删改查的action会在这两个struts标签里面写,如下:

<package name="default" namespace="/" extends="struts-default">

  <action name="queryaction" class="queryaction"
   method="excute">
   <result name="success">query.jsp</result>
  </action>

  <action name="insertaction" class="insertaction"
   method="excute">
   <result name="success">insert.jsp</result>
  </action>

  <action name="deleteaction" class="deleteaction"
   method="excute">
   <result name="success">OK.jsp</result>
  </action>

  <action name="reviseaction" class="reviseaction"
   method="excute">
   <result name="success">OK.jsp</result>
  </action>

  <action name="showRecord" class="showRecord" method="excute">
   <result name="success">revise.jsp</result>
  </action>
 </package>

当然测试struts配置成功是不必加这些东西的)

4)现在把工程发布到tomcat上去测试一下,在工程名字上点击右键,选择MyEclipseàAdd and Removeproject Deployments,在打开的窗口里,点击Add,选择我们之前配置好的tomcat6服务器。发布好了,启动tomcat,如果启动无异常,则说明配置成功。

 

4、配置Hibernate

4.1 基础配置

1)  导入最小jar包,即使用Hibernate3所必需的jar包。

2)   创建数据源

 

(这边add你的数据库驱动包我的是

 

3)  创建Hibernate配置文件。在WEB-INF"calsses目录下(工程的src包下)新建hibernate.cfg.xml。这是hibernate连接数据库的配置文件。这里以连接My SQL为例:

a)首先给工程添加hibernate能力

这边用我自己导入的hibernate包MyEclipse自带的不用。

这边选择刚刚建立的DB Driver

b)配置hibernate.cfg.xml文件,我的配置文件如下:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

<session-factory>
 <property name="connection.username">root</property>
 <property name="connection.url">
  jdbc:mysql://localhost:3306/databaseoperation
 </property>
 <property name="dialect">
  org.hibernate.dialect.MySQLDialect
 </property>
 <property name="myeclipse.connection.profile">dbOperation</property>
 <property name="connection.driver_class">
  com.mysql.jdbc.Driver
 </property>
 <property name="show_sql">true</property>
 <property name="format_sql">true</property>
 <property name="connection.autocommit">true</property>   //这句是为了以后执行数据库查询的时候自动提交事务的
 <mapping resource="entity/User.hbm.xml" />

</session-factory>

</hibernate-configuration>

3)在web.xml文件里面加入以下内容:

<!-- 配置hibernate -->

 <filter>
  <filter-name>hibernateFilter</filter-name>
  <filter-class>
   org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
  </filter-class>

  <init-param>
   <param-name>flushMode</param-name>
   <param-value>AUTO</param-value>
  </init-param>
 </filter>

  <filter-mapping>
  <filter-name>hibernateFilter</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>

5、配置Spring2.5

5.1 基础配置

1)   导入spring包。

2)    配置web.xml文件。

在web.xml文件里面同样加入:

<!--  配置Spring -->
 <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:applicationContext.xml</param-value>
 </context-param>

3   在src下面新建applicationContext.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"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

</beans>

 

5.2整合Struts和Spring

Spring与Struts的整合其实就是把Struts的Action类交给Spring来管理.!

1)     导入jar包。在Struts2.1.6lib目录中找到struts2-spring-plugin-2.1.6.jar,引入到工程中。(刚开始已经导入了)

2)       配置web.xml文件。在web.xml中加入以下代码:

<!-- 整合spring和struts -->
 <listener>
  <listener-class>
   org.springframework.web.context.ContextLoaderListener
  </listener-class>
 </listener>

3)这边是我的增删改查的action配置applicationContext.xml里面的

<!-- 由于Struts -->
 <bean id="queryaction" class="action.QueryAction"
  scope="prototype">
  <property name="userService">
   <ref bean="userService" />
  </property>
 </bean>
 <bean id="insertaction" class="action.InsertAction"
  scope="prototype">
  <property name="userService">
   <ref bean="userService" />
  </property>
 </bean>
 <bean id="reviseaction" class="action.ReviseAction"
  scope="prototype">
  <property name="userService">
   <ref bean="userService" />
  </property>
 </bean>
 <bean id="deleteaction" class="action.DeleteAction"
  scope="prototype">
  <property name="userService">
   <ref bean="userService" />
  </property>
 </bean>
 <bean id="showRecord" class="action.showRecord"
  scope="prototype">
  <property name="userService">
   <ref bean="userService" />
  </property>
 </bean>

 

5.3整合Hibernate和Spring

Spring整合Hibernate主要是对hibernate的Session进行管理,包含Session的创建、提交、关闭的整个生命周期。Spring对事务的管理应用了AOP的技术。

1)  配置sessionFactory让spring来创建Session。在applicationContext.xml中增加如下代码:

<bean id="sessionFactory"
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="configLocation"
   value="classpath:hibernate.cfg.xml" />
 </bean>

2) 配置事务管理器。增加如下代码:

<bean id="transactionManager"
  class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory" ref="sessionFactory" />
 </bean>

3)  对事务管理器进行事务设置。

<bean id="transactionBase"
  class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
  lazy-init="true" abstract="true">
  <property name="transactionManager" ref="transactionManager" />
  <property name="transactionAttributes">
   <props>
    <prop key="*">PROPAGATION_REQUIRED</prop>
   </props>
  </property>
 </bean>

4)事务运用到dao层下:applicationContext.xml里面的

<!-- 由于hibernate -->
 <bean id="userDao" class="dao.UserDAOImpl">
  <property name="sessionFactory">
   <ref bean="sessionFactory" />
  </property>
 </bean>
 <bean id="userService" class="biz.UserServiceImpl">
  <property name="userDao">
   <ref bean="userDao" />
  </property>
 </bean>

这边我会给出我建的项目的具体框架以及dao层的一个类文件UserDAOImpl

package dao;

import java.sql.SQLException;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import entity.User;

public class UserDAOImpl extends HibernateDaoSupport implements IUserDAO {

 @SuppressWarnings("unchecked")
 public List<User> findAllUser() {
  String hql = "from User user order by user.id";
  return (List<User>) this.getHibernateTemplate().find(hql);
 }

 public User findUserById(Integer id) {
  User user = (User) this.getHibernateTemplate().get(User.class, id);
  return user;
 }

 public void removeUser(int id) {
//  final String hql = "delete User u where u.id= " + id;
//  Integer count = (Integer) getHibernateTemplate().execute(
//    new HibernateCallback() {
//     public Object doInHibernate(Session session)
//       throws HibernateException, SQLException {
//      int deletedEntities = session.createQuery(hql)
//        .executeUpdate();
//      return deletedEntities;
//     }
//    });
   User user = (User) this.getHibernateTemplate().get(User.class, id);
   this.getHibernateTemplate().delete(user);
 }

 public void saveUser(User user) {
  this.getHibernateTemplate().save(user);
 }

 public void updateUser(User user) {
  this.getHibernateTemplate().update(user);
 }
}

 

总结:

具体的SSH配置就这些了,其他的就是写实现增删改查action的类了我的项目架构如下:

 

 

 

 

 


 

 

 

 

 


























 


  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值