设为首页 加入收藏

TOP

通向架构师的道路(第二十天)万能框架spring(二)maven结合spring与ibatis(三)
2018-03-14 09:00:25 】 浏览:853
Tags:通向 架构 师的 道路 第二十 万能 框架 spring maven 结合 ibatis
ionFactory ibatisSessionFactory; private T mapper; public SqlSessionFactory getSessionFactory() { return ibatisSessionFactory; } protected SqlSession getSqlSession() { return ibatisSessionFactory.openSession(); } public T getMapper(Class<T> clazz) { mapper = getSqlSession().getMapper(clazz); return mapper; } public T getMapper(Class<T> clazz, SqlSession session) { mapper = session.getMapper(clazz); return mapper; } /** * close SqlSession */ protected void closeSqlSession(SqlSession sqlSession) throws Exception { try { if (sqlSession != null) { sqlSession.close(); sqlSession = null; } } catch (Exception e) { } } }

org.sky.ssi.ibatis.IBatisTransaction

package org.sky.ssi.ibatis;

import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.apache.ibatis.transaction.Transaction;
import org.springframework.jdbc.datasource.DataSourceUtils;

public class IBatisTransaction implements Transaction{

    private DataSource dataSource;

    private Connection connection;

    public IBatisTransaction(DataSource dataSource, Connection con, boolean autoCommit){

        this.dataSource = dataSource;

        this.connection = con;

    }



    public Connection getConnection(){

        eturn connection;

    }

 

    public void commit()

        throws SQLException{                        }

 

    public void rollback()

        throws SQLException{                        }

 

    public void close()

        throws SQLException{

            if(dataSource != null && connection != null){

            DataSourceUtils.releaseConnection(connection, dataSource);

            }

    }

}

org.sky.ssi.ibatis.IBatisTransactionFactory

package org.sky.ssi.ibatis;

 

import java.sql.Connection;

import java.util.Properties;

import javax.sql.DataSource;

import org.apache.ibatis.transaction.Transaction;

import org.apache.ibatis.transaction.TransactionFactory;


public class IBatisTransactionFactory implements TransactionFactory{
                     

     private DataSource dataSource;

  
     public IBatisTransactionFactory(DataSource dataSource){

        this.dataSource = dataSource;

     }

     

     public void setProperties(Properties properties){      }

     

     public Transaction newTransaction(Connection connection, boolean flag){

        return new IBatisTransaction(dataSource,connection,flag);

     } 

}

此三个类的作用就是在datasource.xml文件中描述的,把spring与datasource.xml中的datasource和transaction连接起来,此处尤其是“IBatis3SQLSessionFactoryBean”的写法,它通过spring中的“注入”特性,把iBatis的配置注入进spring并委托spring的context来管理iBatis(此属网上没有的资料,全部为本人在历年工程中的经验总结,并且已经在至少3个项目中进行了集成使用与相关测试)。

建立iBatis配置文件

我们先在/src/main/resources目录下建立一个叫sqlmap.xml的文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-config.dtd">

<configuration>

    <mappers>

        <mapper resource="ibatis/index.xml" />

        <mapper resource="ibatis/login.xml" />

    </mappers>

</configuration>

然后我们在/src/main/resources 目录下建立index.xml与login.x

首页 上一页 1 2 3 4 5 6 下一页 尾页 3/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇使用 partclone 备份磁盘分区 下一篇使用foremost恢复已删除文件

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目