Welcome to

Vcode

首页 / J2EE / 关于Spring对Mybatis的整合

关于Spring对Mybatis的整合

------entity 实体

------dao 接口 由Mapper实现 可在参数列表 加@Param 参数应用

关于spring的配置文件

若有perproties的文件 首先得扫描 

<context:property-placeholder location="jdbc.properties"/>

接下来配置dataSource 连接池

<bean id="dataSoure" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="driverClass" value="com.mysql.jdbc.Driver"/>
    <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/mud?useUnicode=true"/>
    <property name="user" value="root"/>
    <property name="password" value="${jdbc.password}"/>
    <!-- c3p0连接池的私有属性 -->
    <property name="maxPoolSize" value="30" />
    <property name="minPoolSize" value="10" />
    <!-- 关闭连接后不自动commit -->
    <property name="autoCommitOnClose" value="false" />
    <!-- 获取连接超时时间 -->
    <property name="checkoutTimeout" value="10000" />
    <!-- 当获取连接失败重试次数 -->
    <property name="acquireRetryAttempts" value="2" />
</bean>

然后就是配置sqlSessionFactory 添加属性 如 实体 数据源 mybatis全局文件 mapper

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSoure"/>
    <property name="configLocation" value="mybatis-config.xml"/>
    <property name="typeAliasesPackage" value="entity"/>
    <property name="mapperLocations" value="classpath*:/mapper/*.xml"/>
</bean>

最后就是为spring注入dao层

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="dao"/>
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
 </bean>


Mybatis-config配置文件如下:

<?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>

    <settings>
        <!-- Globally enables or disables any caches configured in any mapper under this configuration -->
        <setting name="cacheEnabled" value="true"/>
        <!-- Sets the number of seconds the driver will wait for a response from the database -->
        <setting name="defaultStatementTimeout" value="3000"/>
        <!-- Enables automatic mapping from classic database column names A_COLUMN to camel case classic Java property names aColumn -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <!-- Allows JDBC support for generated keys. A compatible driver is required.
        This setting forces generated keys to be used if set to true,
         as some drivers deny compatibility but still work -->
        <setting name="useGeneratedKeys" value="true"/>
    </settings>

    <!-- Continue going here -->

</configuration>


Mapper如下:

<?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="dao.IPss">
    <select id="queryall" resultType="ipname">
        <!-- 具体的sql -->
        SELECT * FROM ip where  end=061158127255 limit 1
    </select>
</mapper>

id为dao层的方法


最后就是测试了:

@RunWith(SpringJUnit4ClassRunner.class)
// 告诉junit spring配置文件
@ContextConfiguration("classpath:spring/dao.xml")
public class BaseTest {
}


public class testddd extends  BaseTest{
    @Autowired
    private IPss dao;

    @Test
    public void testQueryById() throws Exception {
        ipname book = dao.queryall();
        System.out.println(book.getDesc());
    }

}

很简单的代码 没什么好说的。

本文暂无评论

发表评论

您的电子邮件地址不会被发布。

>> <<