spring和ibatis的整合2

来源:百度文库 编辑:神马文学网 时间:2024/03/28 16:39:17
 ormmping的思想相信不用多说大家都明白了,在这里我选择的是ibatis 由于手动的控制事务会带来很多额外的工作,同时也没有很好的体现面向对象的思想,因而利用ibatis整合spring ;由于要注意的细节非常多现在整理核心步骤如下:

  配置前需把ibatis的jar导入到工程,这里从略

 

一 web.xml的配置

 
    xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 
    This is the description of my J2EE component
    This is the display name of my J2EE component
    InserttoDBServlet
    service.InserttoDBServlet
 


 
 
 
 
 
    InserttoDBServlet
    /InserttoDBServlet
 

 
 
 
 
    contextConfigLocation
   
        classpath:applicationContext.xml
   



   
        org.springframework.web.context.ContextLoaderListener
   


 
 
 
 
 
 
        action
       
            org.apache.struts.action.ActionServlet
       

       
            config
            /WEB-INF/struts-config.xml
       

        1
   

 
    This is the description of my J2EE component
    This is the display name of my J2EE component
    TestServlet
    test.TestServlet
   
 



   
        action
        *.do
   

 
    TestServlet
    /servlet/TestServlet
 

 
 
 
      ExtFilter
     filter.ExtFilter
   
 

 
 
     ExtFilter
    /*
 

 

二  applicationContext.xml文件的配置







            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
       
   


            class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
                    value="com.mysql.jdbc.Driver" />
       
       
       
       
       
   

   
   
   
            class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
                    value="oracle.jdbc.OracleDriver" />
       
       
       
       
       
   

   
   

            class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
                    value="classpath:sqlmap-config.xml" />
       
   


            class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
        abstract="true">
       
       
       
           
                PROPAGATION_REQUIRED
                readOnly
                readOnly
                PROPAGATION_REQUIRED
                PROPAGATION_REQUIRED
           

       

   

   
   
   
      
   

   
   
   
       
   

   
   
   
      
   

   
   
        
   

   
   
      
   

   
   
   
      
   

   
   
   
   
   
   

 

 

三 sqlmap-config.xml 文件配置



   
   

 

四 ormpping文件的配置(student_oracle.xml等 )



    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"     
    "http://ibatis.apache.org/dtd/sql-map-2.dtd">

            class="entity.Student">
                    columnIndex="1" />
                    columnIndex="2" />
       
   


   

   
        insert into test_qjk_stu(id,stuname,stupassword)values(#stuId#,#name#,#password#)
   

   
   
     
           
              SELECT test_qjk_stu_seq.nextval FROM DUAL    
       

        insert into test_qjk_stu(id,stuname,stupassword)values(#stuId#,#name#,#password#)
       
           
   

   
   
   
   

 

 

五 实体bean代码

package entity;

import java.util.Date;

public class Student {
   
    private Integer stuId;
    private String name;
    private Date birthday;
    private String sex;
    private String passport;
    private byte[] password;
   
    public byte[] getPassword() {
        return password;
    }
    public void setPassword(byte[] password) {
        this.password = password;
    }
    public Date getBirthday() {
        return birthday;
    }
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassport() {
        return passport;
    }
    public void setPassport(String passport) {
        this.passport = passport;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }

   
    public Integer getStuId() {
        return stuId;
    }
    public void setStuId(Integer stuId) {
        this.stuId = stuId;
    }
    public String toString(){
        return "stuid:"+stuId+"---name:"+name+"---passport:"+passport+"-----sex:"+sex+"--birthday:"+birthday;
    }

}

 

 

六  dao实现类

 

package dao;

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

import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

import util.Print;

import entity.Student;

public class StudentDaoImpl extends SqlMapClientDaoSupport implements StudentDao {

    public void insertToDb(Student stu) {
       
          getSqlMapClientTemplate().insert("insertToDb", stu);
    }

    public Student queryStuById(Integer id) {
        Student stu=(Student) getSqlMapClientTemplate().queryForObject("queryStuById", id);
        Print.contrlPrint("dao查到的对象是"+stu);
        return stu;
    }

    public List getSomeStu(int start, int pageSize) {
        System.out.println("dao ---start"+start);
        System.out.println("dao ---pageSize"+pageSize);
        List list=getSqlMapClientTemplate().queryForList("queryStudent", null, start, pageSize);
        System.out.println("dao---list---size"+list.size());
        return list;
    }

    public Long getStudentCount() {
        return (Long) getSqlMapClientTemplate().queryForObject("getStudentCount", null);
    }

    public void delStuById(Long stuId) {
          getSqlMapClientTemplate().delete("delStuById", stuId);
       
    }

    public void updateStudent(Student stu) {
        getSqlMapClientTemplate().update("updateStudent", stu);
       
    }
   
   
    public List test(){
        return getSqlMapClientTemplate().queryForList("test",null);
      
    }

    public Integer insertTest(Student stu) {
        Print.contrlPrint("调用了insertTest");
        return (Integer) getSqlMapClientTemplate().insert("insertTest", stu);
    }

}

 

七 业务层实现类

package service;

import java.util.List;

import util.Tools;

import dao.StudentDao;
import entity.Student;

public class StudentServiceImpl implements StudentService {

    private StudentDao studentDao;
   
    public void insertToDb(Student stu) {
       
        studentDao.insertToDb(stu);
//        Integer  id=studentDao.insertTest(stu);
//        System.out.println("插入记录的id是"+id);
    }

    public StudentDao getStudentDao() {
        return studentDao;
    }

    public void setStudentDao(StudentDao studentDao) {
        this.studentDao = studentDao;
    }

    public Student queryById(Integer id) {
       
        return studentDao.queryStuById(id);
    }

    public List getSomeStu(int start, int pageSize) {
       
        return studentDao.getSomeStu(start, pageSize);
    }

    public String getResponseJson(int start, int pageSize) {
        List list=getSomeStu(start, pageSize);
        Long count=getStudentCount();
        return Tools.getResponseJson(list,count);
    }

    public Long getStudentCount() {
       
        return studentDao.getStudentCount();
    }

    public void delStuById(Long stuId) {
        studentDao.delStuById(stuId);
       
    }

    public void updateStudent(Student stu) {
        studentDao.updateStudent(stu);
    }

}