spring与struts1的连接(继承JdbcDaoSupport类的操作)

 

第一步,在web.xml里面配置


 spring在web环境中的配置(2种)

    1.在Web.xml中配置上下文载入器


    根据你的系统情况,你可以选择两种上下文载入器:ContextLoaderListener和ContextLoaderServlet.
    如果你的Web容器支持Servlet2.3标准或更高,你可以使用两者,否则只能使用后者.

    (1)ContextLoaderListener在Web.xml应该如下配置:
        <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener> 
    (2)ContextLoaderServlet在Web.xml应该如下配置:
        <servlet>
          <servlet-name>context</servlet-name>
          <servlet-class>
          org.springframework.web.context.ContextLoaderServlet
          </servlet-class>
          <load-on-startup>1</load-on-startup>
        </servlet>

 

第二步,在WEB-INF下建立applicationContext.xml

 

1、导入spring25.jar包

2、spring 2.5 dtd配置

<?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.5.xsd">

 

<beans/>

 

3、 使用Spring的Dao支持来写Dao层,继承JdbcDaoSupport类,JdbcDaoSupport类中有一个字段dataSource
    也就是数据库连接,因此只需继承JdbcDaoSupport类,并给它注入dataSource,就隐式的获得了数据库连接,可以在bean.xml文件中
    注入connection(即:dataSource)
     <beans>
     <!-- spring 方式获得dataSource-->
   
      <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
        <property name="url"><value>jdbc:mysql://localhost:3306/j2ee</value></property>
        <property name="username"><value>root</value></property>
        <property name="password"><value>123456</value></property>
       </bean>

    <bean id="xxx" class="包名.类名(dao的实现类)">
        <property name="dataSource">
            <ref local="dataSource"/>
        </property>
    </bean>

     </beans>

 

4、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.5.xsd">

 

//注入数据源:这是oracle的

<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:@127.0.0.1:1521:orcl</value>
             </property>
             <property name="username"><value>company</value>
             </property>
             <property name="password"><value>company</value>
             </property>
         </bean>

 

//注入数据源:这是mysql的
      <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
        <property name="url"><value>jdbc:mysql://localhost:3306/j2ee</value></property>
        <property name="username"><value>root</value></property>
        <property name="password"><value>123456</value></property>
       </bean>

 

<bean id="personDaoSupport" class="com.lxit.dao.impl.PersonDaoImplSupport(dao层的实现类:包名.类名)">
             <property name="dataSource"><ref local="dataSource"/>
             </property>
         </bean>
         
         <bean id="personService" class="com.lxit.service.impl.PersonServiceImpl(service层的实现类:包名.类名)">
             <property name="personDao(service实现类的属性名:要和service层实现类的属性名一致)" ref="personDaoSupport(这里要和上面配置的实现dao层的实现类的id一致)"></property>
         </bean>

 

 

<beans/>

 

第三步,在dao层写实现类

 

1、继承JdbcDaoSupport类

2、在这个Dao 实现类中写一个内部类,使其实现:RowMapper接口,用来封装成具体的pojo对象,代码如下

     private class PersonRowMapper implements RowMapper
     {
        public Object mapRow(ResultSet resultSet, int rowNumber)
            throws SQLException {
            User user = new User();
            user.setId(resultSet.getLong("id"));
            user.setName(resultSet.getString("name"));
            user.setSex(resultSet.getString("sex"));
            user.setAge(resultSet.getInt("age"));
            user.setAddr(resultSet.getString("addr"));
            return user;
          }

     }

3、通过dao层的实现类进行增删查询修改操作
         (1)增加 修改 删除示例
          public void createPerson(PersonBean p)
            {
        Object[] args = {p.getName() , new Integer(p.getAge()) };
        getJdbcTemplate().update("insert into person_test(p_name,p_age) values(?,?)", args );
            }
          (2)查询 返回单个object
            public PersonBean getPerson(int id)
            {
        Object[] args = {new Integer(id)};
        //PersonRowMapper是刚刚的内部类
        return (PersonBean)getJdbcTemplate().queryForObject("select p_name,p_age from person_test where p_id = ?", args, new PersonRowMapper());
             }
       (3)返回list
          public List findPersonsByName(String name)
          {
            //PersonRowMapper是刚刚的内部类
        return getJdbcTemplate().query("select * from person_test where p_name like '%" + name +"%'" , new PersonRowMapper());
          }

 

第四步,在action里面进行调用即可

代码如下:

public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        System.out.println("进入execute方法");
        WebApplicationContext beanFactory = WebApplicationContextUtils
        .getWebApplicationContext(this.getServlet().getServletContext());
        PersonService person = (PersonService) beanFactory.getBean("personService");
        request.setAttribute("list", person.findAll());
        return mapping.findForward("success");
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值