`

mycat:spring mybatis

阅读更多
=========================================
spring-config-db.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:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd">

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="druidDataSource" />
        <property name="mapperLocations">
            <list>
                <value>classpath*:sqlmap/*Mapper.xml</value>
            </list>
        </property>
    </bean>

    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg ref="sqlSessionFactory" />
    </bean>

    <bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        <property name="driverClassName" value="${jdbc.driverClassName}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
        <!--initialSize: 初始化连接-->
        <property name="initialSize" value="${jdbc.initialSize}"/>
        <!--minIdle: 最小空闲连接-->
        <property name="minIdle" value="${jdbc.minIdle}"/>
        <!--maxActive: 最大连接数量-->
        <property name="maxActive" value="${jdbc.maxActive}"/>
        <!--removeAbandoned: 是否自动回收超时连接-->
        <property name="removeAbandoned" value="true"/>
        <!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->
        <property name="removeAbandonedTimeout" value="${jdbc.removeAbandonedTimeout}"/>
        <!--maxWait: 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒-->
        <property name="maxWait" value="${jdbc.maxWait}"/>
        <property name="defaultAutoCommit">
            <value>false</value>
        </property>
        <property name="validationQuery" value="select 1"/>
        <property name="poolPreparedStatements" value="true" />
        <property name="maxOpenPreparedStatements" value="${jdbc.maxOpenPreparedStatements}" />
    </bean>

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="druidDataSource" />
    </bean>

    <tx:annotation-driven transaction-manager="transactionManager"/>

</beans>
=========================================
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="com.mycat.test.model.Test">

<resultMap type="com.mycat.test.model.Test" id="testResultMap">
<result property="id" column="id_"/>
  <result property="name" column="name_"/>
  <result property="userId" column="user_id"/>
</resultMap>

    <select id="selectAll" resultMap="testResultMap">
        select * from sam_test
    </select>

    <select id="selectSome" parameterType="java.util.Map" resultMap="testResultMap">
        select * from sam_test limit #{offset},#{limit}
    </select>

    <select id="getObject" resultMap="testResultMap" parameterType="java.lang.Object">
        select * from sam_test where id_ = #{id}
    </select>

    <insert id="insert" parameterType="com.mycat.test.model.Test">
        INSERT INTO sam_test(
        name_,
        user_id
        )
        VALUES(
            #{name,jdbcType=VARCHAR},
            #{userId,jdbcType=BIGINT}
        )
        <selectKey resultType="java.lang.Long" order="AFTER" keyProperty="id">
            select last_insert_id() as id
        </selectKey>
    </insert>

    <update id="update" parameterType="com.mycat.test.model.Test">
        update sam_test
        <set>
            <if test="name != null and name != ''">
              name_ = #{name},
            </if>
            <if test="userId != null">
              user_id = #{userId},
            </if>
        </set>
        where id_=#{id}
    </update>

    <delete id="delete" parameterType="java.lang.Object">
        delete from sam_test where id = #{id}
    </delete>

    <select id="findOneByMap" resultMap="testResultMap">
        select * from sam_test where 1=1 AND
        <foreach item="param" index="key" collection="list"  open="" separator="AND" close="">
            ${param.name} = #{param.value}
        </foreach>
        limit 0, 1
    </select>

    <select id="findOneByObject" parameterType="com.mycat.test.model.Test" resultMap="testResultMap">
        select * from sam_test
        <where>
                <if test="name != null">
                    and name_=#{name}
                </if>
                <if test="userId != null">
                    and user_id=#{userId}
                </if>
        </where>
        limit 0, 1
    </select>

    <select id="findByMap" resultMap="testResultMap">
        select * from sam_test where 1=1 AND
        <foreach item="param" index="key" collection="list" open="" separator="AND" close="">
            ${param.name} = #{param.value}
        </foreach>
    </select>

    <select id="findByObject" parameterType="com.mycat.test.model.Test" resultMap="testResultMap">
        select * from sam_test
        <where>
            <if test="name != null">
                and name_=#{name}
            </if>
            <if test="userId != null">
                and user_id=#{userId}
            </if>
        </where>
    </select>

    <select id="findByIn" resultMap="testResultMap">
        select * from sam_test where 1=1 AND
        <foreach item="param" index="key" collection="list"  open="" separator="AND" close="">
            ${param.name} IN (#{param.value})
        </foreach>
    </select>

    <select id="findByLike" resultMap="testResultMap">
        select * from sam_test where 1=1 AND
        <foreach item="param" index="key" collection="list"  open="" separator="AND" close="">
            ${param.name} LIKE #{param.value}
        </foreach>
    </select>

    <select id="getTotalCount" resultType="int">
        select count(1) from sam_test
    </select>

    <select id="getCount" parameterType="java.util.Map" resultType="int">
        select count(1) from sam_test where 1=1
        <if test="whereClause != null">
        ${whereClause}
        </if>
    </select>

    <select id="query" parameterType="java.util.Map" resultMap="testResultMap">
        select ${fieldsClause} from sam_test where 1=1
        <if test="whereClause != null">
        ${whereClause}
        </if>
        <if test="orderClause != null">
        ${orderClause}
        </if>
        limit ${limit} offset ${offset}
    </select>

</mapper>

分享到:
评论

相关推荐

    spring,mybatis,hibernate,activemq,redis,dubbo的集成

    【标题】"spring,mybatis,hibernate,activemq,redis,dubbo的集成" 这个标题提及的是一个综合性的Java开发项目,它整合了多个流行的技术框架和中间件,旨在提供一个全面的后端服务解决方案。让我们逐一探讨这些...

    SpringMVC+Mybatis的整合

    总的来说,SpringMVC+Mybatis的整合是Java Web开发中常见的一种架构模式,它结合了Spring的优秀控制反转和依赖注入特性,以及Mybatis对数据库操作的高度定制性,为开发者带来了高效、可扩展的开发体验。

    2019品优购.txt

    技术选型 前端:angularJS + Bootstrap 后台:SSM( springmvc+spring+mybatis) 数据库:mysql,使用mycat读写分离 开发模式:SOA 服务中间件:dubbox,需要和zookeeper配合使用 注册中心:zookeeper 消息中间件:...

    黑马49期全系列包括品优购

    黑马49期全系列,包括品优购,yunpan地址,前端:angularJS + Bootstrap 后台:SSM( springmvc+spring+mybatis) 数据库:mysql 使用mycat读写分离 开发模式:SOA 服务中间件:dubbox,需要和zookeeper配合使用 ...

    黑马品优购电商项目全套资源

    后台:SSM(springmvc + spring + mybatis) 数据库:mysql,使用mycat读写分离 开发模式:SOA 服务中间件:dubbox,需要和zookeeper配合使用 注册中心:zookeeper 消息中间件:Activemq,使用弹簧JMS 负载均衡:...

    springboot-mycat.rar

    6. `Java源代码`:Spring Boot应用的业务逻辑代码,可能包含使用JDBC或MyBatis等持久层框架与Mycat交互的部分。 集成Mycat到Spring Boot的步骤大致包括: 1. 添加Mycat的依赖至`pom.xml`。 2. 配置`application....

    SpringBoot+Mybatis实现数据源动态切换

    springboot实现数据源动态切换 注意事项: 1. 该demo采用yml配置数据库信息,注意url标签为jdbc-url 2.项目中加了日志输出,可看到完整执行过程 3.在Service中应用事务时,自定义的注解将失效,解决办法:可将注解...

    Mycat分库分表+springcloud微服务小案例源码.zip

    模拟电商项目中的商品管理、订单管理、基础信息管理、日志管理模块,对整个系统中的数据表进行分片操作,将根据不同的业务需求,采用不同的分片方式 。...- Mybatis - SpringDataRedis - MySQL - Redis - Lombok

    MyCat 服务端

    在实际应用中,MyCat 通常与 Spring、MyBatis 等框架配合使用,为大型互联网应用提供强大的数据库支撑。在部署 MyCat 时,需要配置分片规则、数据源、路由策略等信息,这些都通过 MyCat 的配置文件完成,如 `schema....

    mycat-definitive-guidePDF文档.rar

    9. **与其他技术的集成**:如Spring、MyBatis等,以及如何在现有系统中无缝集成Mycat。 除了主文档外,压缩包中还包含了一个名为"rm.txt"的文本文件,可能包含了阅读指南、注意事项或者作者的额外信息,对于深入...

    Spring+MyBatis实现数据库读写分离方案

    在Web应用中,Spring和MyBatis框架结合可以很好地实现这一方案。以下是实现这一方案的具体步骤和相关知识点: 1. **数据源配置**: 在Spring中,我们可以使用`DruidDataSource`作为数据源,它是一个高性能、易用的...

    Mycat指南标签版.zip

    作为Java中间件,Mycat易于与Java应用集成,可以无缝对接Spring、MyBatis等常见框架,降低开发难度。 8. **扩展性**: Mycat的设计允许添加新的功能模块,例如负载均衡、安全控制等,可以根据业务发展进行定制化...

    基于SSM框架之宜立方商城项目完整源码

    SSM框架是Java Web开发中常用的组合框架,由Spring、Spring MVC和MyBatis三个组件构成。这个"基于SSM框架之宜立方商城项目完整源码"提供了一个实际的电商应用实例,适合开发者学习和研究。下面我们将深入探讨这个...

    SpringBoot+Mybatis-Plus整合Sharding-JDBC5.1.1实现单库分表【全网最新】.doc

    传统的分库分表方案如Mycat虽然强大,但因其bug较多,使得许多人转向Sharding-JDBC等更为稳定可靠的方案。本文将详细介绍如何使用SpringBoot、Mybatis-Plus以及Sharding-JDBC 5.1.1版本来实现单库分表。 #### 二、...

    java开发专家模版 简历 项目商场秒杀平台

    9. **SSM/SpringMVC**:SSM(Spring、SpringMVC、MyBatis)是经典的Java Web开发框架组合,SpringMVC是Spring框架的一部分,用于处理HTTP请求和响应,提供了灵活的控制层。 对于面试者而言,这些技术的熟练掌握和...

    mycat与ShardingSphere1

    6. **生态整合**:ShardingSphere不仅支持MySQL,还支持PostgreSQL、Oracle等多种数据库,同时兼容MyBatis、JPA、Spring JDBC Template等多种ORM框架。 **Mycat与ShardingSphere的对比** 1. **架构设计**:Mycat...

    王伟-java后台开发实习1

    该项目使用了 SSM+Dubbo+Redis 技术栈,并且使用了 Zookeeper+fastDFS+Spring-Security+Linux+MyCat+Nginx+CAS 等技术。 四、技术栈 王伟的技术栈包括: * 后台技术:Spring、Mybatis、SpringMVC、git、SVN、...

    java工程师简历_应聘JAVA开发工程师.doc

    - Mybatis:轻量级的持久层框架,提供SQL语句的动态执行。 4. **权限控制**: - Shiro:轻量级的安全框架,用于实现用户认证和授权。 5. **数据库技术**: - Oracle:一种广泛使用的商业关系型数据库管理系统。...

    Mycat2-main.zip

    通过Java接口,开发者可以方便地集成Mycat2到他们的应用中,同时利用Java的丰富工具和框架,如Spring、MyBatis等,进一步优化数据库操作。这使得Mycat2不仅限于简单的数据分片,还能实现高级的数据库管理功能,如...

    如何构建快速的mvc开发环境

    3. **Mybatis 3.2.8** 和 **Mybatis Spring 1.2.3**:Mybatis作为持久层框架,结合Spring,方便地进行数据库操作。 4. **Mysql-Driver 5.1.35**:MySQL的Java驱动,用于连接数据库。 5. **Druid 1.0.17**:连接池...

Global site tag (gtag.js) - Google Analytics