zoukankan      html  css  js  c++  java
  • c3p0+spring3+mybatis3的整合配置文件示例

    环境描述:  

      mybatis的jar包:mybatis-3.1.1.jar(mybatis自身功能包),mybatis-spring-1.1.1.jar(mybatis和spring的整合包)

      c3p0的jar包:c3p0-0.9.1.jar。

    首先配置好mybatis的*Mapper.xml文件:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="org.jston.sql.interfaces.EasyMapper">
        <resultMap id="Easymap" type="org.jston.entity.Easy">
            <!--id映射 -->
            <id property="eid" column="eid" />
            <!--普通属性映射 -->
            <result property="ename" column="ename" />
            <result property="epassword" column="epassword" />
        </resultMap>
    
        <select id="getById" parameterType="int" resultMap="Easymap">
            select *
            from Easy where eid = #{id}
        </select>
        
    </mapper>

    上述代码描述了一张表映射到mybatis中的基本结构,resultMap节点的type属性是数据库表所对应的实体类,<id>节点则是描述数据库作为标识列映射到Java实体类对应的字段。<result>则是一般字段。<select />顾名思义,是配置一个查询。

    Java实体类如下:

    package org.jston.entity;
    
    public class Easy {
    
        private Integer eid;
        private String ename;
        private String epassword;
        public Integer getEid() {
            return eid;
        }
        public void setEid(Integer eid) {
            this.eid = eid;
        }
        public String getEname() {
            return ename;
        }
        public void setEname(String ename) {
            this.ename = ename;
        }
        public String getEpassword() {
            return epassword;
        }
        public void setEpassword(String epassword) {
            this.epassword = epassword;
        }
    }

    现在对mybatis的Mapper配置实体类应该Ok了,接下来就是Configration.xml了,这是mybatis的主配置文件,由于现在要将spring和mybatis整合,所以mybatis的主配置文件的意义只是用来管理mybatis的Mapper.xml文件而已,具体内容如下:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <mappers>
            <mapper resource="resouce/EasyMapper.xml" />
        </mappers>
    
    </configuration>

    只需要配置一下Mapper即可,关于datasource的配置在spring中配置。

    到此mybatis的简单配置就Ok了。

    下面就是配置spring的application.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" xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation=" 
           http://www.springframework.org/schema/beans  
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
           http://www.springframework.org/schema/tx  
           http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
           http://www.springframework.org/schema/aop  
           http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
    
    
    
        <!-- dataSource -->
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
            destroy-method="close">
            <property name="driverClass" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property>
            <property name="jdbcUrl"
                value="jdbc:sqlserver://localhost:1433; DatabaseName=ey"></property>
            <property name="user" value="mybatis"></property>
            <property name="password" value="mybatis"></property>
        </bean>
    
        <!-- 使用spring的会话管理 -->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource" />
            <property name="configLocation" value="classpath:Configration.xml" />
        </bean>
        
        <!-- 使用spring的事务管理 -->
        <bean name="transactionManager"
            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"></property>
        </bean>
        <!-- 配置当出现Exception、RuntimeException、Exception时采用对应的事务操作 -->
        <tx:advice id="userTxAdvice" transaction-manager="transactionManager">
            <tx:attributes>
                <tx:method name="delete*" propagation="REQUIRED" read-only="false"
                    rollback-for="java.lang.Exception" no-rollback-for="java.lang.RuntimeException" />
                <tx:method name="insert*" propagation="REQUIRED" read-only="false"
                    rollback-for="java.lang.RuntimeException" />
                <tx:method name="update*" propagation="REQUIRED" read-only="false"
                    rollback-for="java.lang.Exception" />
                <tx:method name="find*" propagation="SUPPORTS" />
                <tx:method name="get*" propagation="SUPPORTS" />
                <tx:method name="select*" propagation="SUPPORTS" />
            </tx:attributes>
        </tx:advice>
    
    </beans>

    以上就是spring和mybatis的配置文件整合示例。

    接下来就是调用Mybatis上面配置好德select语句了~

    先创建一个Dao接口:

    package org.jston.sql.interfaces;
    
    import org.jston.entity.Easy;
    
    public interface EasyMapper {
    
        public Easy getById(int id);
    }
        

    回头看看上面的mybatis的*Mapper.xml文件就会发现,Mapper节点的type属性和现在定义的Dao接口类型一致,并且<select>节点的id和这个接口的方法名也一致,意味着等下我们可以通过调用这个接口的getById方法来调用mybatis对应的Sql语句。

    main方法测试代码:

    package org.jston.mybatis;
    
    import java.io.IOException;
    
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.defaults.DefaultSqlSessionFactory;
    import org.jston.entity.Easy;
    import org.jston.sql.interfaces.EasyMapper;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class Mybatis_Test {
    
        public static void main(String[] args) throws IOException {
    
            //加载spring的配置文件
            ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext(
                    "applicationContext.xml");
            //得到mybatis的SqlSessionFactory
            SqlSessionFactory obj = (SqlSessionFactory) app.getBean(
                    "sqlSessionFactory", DefaultSqlSessionFactory.class);
            //创建mybatis的SqlSession
            SqlSession ses = obj.openSession();
            //得到在mybatis的*Mapper.xml文件中配置好的Mapper节点
            EasyMapper mapper = ses.getMapper(EasyMapper.class);
            //调用mybatis的Id为getById对应的Sql语句
            Easy easy = mapper.getById(1);
            //打印输出
            System.out.println(easy.getEname());
        }
    }
     
  • 相关阅读:
    Ajax加载数据的使用
    解决VS2012新建MVC4等项目时,收到此模板加载程序集“NuGet.VisualStudio.Interop…”的错误
    XSS攻击原理
    SQL语句:一张表和另一张表的多重匹配查询
    ASP.NET打开项目错误:将指定的计数添加到该信号量中会导致其超过最大计数。
    读取数据库的数据并转换成List<>
    11款样式新颖的 jQuery/CSS3 网页菜单
    网站提高速度的13个简易规则
    微软分布式缓存解决方案
    性能优化工具 MVC Mini Profiler
  • 原文地址:https://www.cnblogs.com/jston/p/2887358.html
Copyright © 2011-2022 走看看