- 浏览: 59869 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (93)
- java (3)
- ios (9)
- wp (15)
- android (0)
- js (1)
- 服务器 (0)
- db (0)
- linux (1)
- python (0)
- xcode (0)
- ide (2)
- maven (0)
- spring (0)
- sql (0)
- 第三方 (1)
- nexus (0)
- nginx (11)
- tomcat (0)
- jenkins (0)
- zookeeper (1)
- git (1)
- svn (0)
- uml (0)
- redis (4)
- activemq (1)
- flume (0)
- kafka (0)
- mysql (1)
- memcached (0)
- mybatis (0)
- mac (0)
- mongo (1)
- docker (6)
- cache (0)
- jvm (0)
- markdown (0)
- springboot (24)
- mycat (3)
- LTS (3)
- 运维 (0)
- opts (1)
- netty (1)
- tcc (0)
- ffmpeg (2)
- 直播 (6)
- cxf (0)
- nodejs (0)
- storm (0)
- elasticjob (0)
- php (0)
最新评论
=========================================
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-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的集成" 这个标题提及的是一个综合性的Java开发项目,它整合了多个流行的技术框架和中间件,旨在提供一个全面的后端服务解决方案。让我们逐一探讨这些...
总的来说,SpringMVC+Mybatis的整合是Java Web开发中常见的一种架构模式,它结合了Spring的优秀控制反转和依赖注入特性,以及Mybatis对数据库操作的高度定制性,为开发者带来了高效、可扩展的开发体验。
技术选型 前端:angularJS + Bootstrap 后台:SSM( springmvc+spring+mybatis) 数据库:mysql,使用mycat读写分离 开发模式:SOA 服务中间件:dubbox,需要和zookeeper配合使用 注册中心:zookeeper 消息中间件:...
黑马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 负载均衡:...
6. `Java源代码`:Spring Boot应用的业务逻辑代码,可能包含使用JDBC或MyBatis等持久层框架与Mycat交互的部分。 集成Mycat到Spring Boot的步骤大致包括: 1. 添加Mycat的依赖至`pom.xml`。 2. 配置`application....
springboot实现数据源动态切换 注意事项: 1. 该demo采用yml配置数据库信息,注意url标签为jdbc-url 2.项目中加了日志输出,可看到完整执行过程 3.在Service中应用事务时,自定义的注解将失效,解决办法:可将注解...
模拟电商项目中的商品管理、订单管理、基础信息管理、日志管理模块,对整个系统中的数据表进行分片操作,将根据不同的业务需求,采用不同的分片方式 。...- Mybatis - SpringDataRedis - MySQL - Redis - Lombok
在实际应用中,MyCat 通常与 Spring、MyBatis 等框架配合使用,为大型互联网应用提供强大的数据库支撑。在部署 MyCat 时,需要配置分片规则、数据源、路由策略等信息,这些都通过 MyCat 的配置文件完成,如 `schema....
9. **与其他技术的集成**:如Spring、MyBatis等,以及如何在现有系统中无缝集成Mycat。 除了主文档外,压缩包中还包含了一个名为"rm.txt"的文本文件,可能包含了阅读指南、注意事项或者作者的额外信息,对于深入...
在Web应用中,Spring和MyBatis框架结合可以很好地实现这一方案。以下是实现这一方案的具体步骤和相关知识点: 1. **数据源配置**: 在Spring中,我们可以使用`DruidDataSource`作为数据源,它是一个高性能、易用的...
作为Java中间件,Mycat易于与Java应用集成,可以无缝对接Spring、MyBatis等常见框架,降低开发难度。 8. **扩展性**: Mycat的设计允许添加新的功能模块,例如负载均衡、安全控制等,可以根据业务发展进行定制化...
SSM框架是Java Web开发中常用的组合框架,由Spring、Spring MVC和MyBatis三个组件构成。这个"基于SSM框架之宜立方商城项目完整源码"提供了一个实际的电商应用实例,适合开发者学习和研究。下面我们将深入探讨这个...
传统的分库分表方案如Mycat虽然强大,但因其bug较多,使得许多人转向Sharding-JDBC等更为稳定可靠的方案。本文将详细介绍如何使用SpringBoot、Mybatis-Plus以及Sharding-JDBC 5.1.1版本来实现单库分表。 #### 二、...
9. **SSM/SpringMVC**:SSM(Spring、SpringMVC、MyBatis)是经典的Java Web开发框架组合,SpringMVC是Spring框架的一部分,用于处理HTTP请求和响应,提供了灵活的控制层。 对于面试者而言,这些技术的熟练掌握和...
6. **生态整合**:ShardingSphere不仅支持MySQL,还支持PostgreSQL、Oracle等多种数据库,同时兼容MyBatis、JPA、Spring JDBC Template等多种ORM框架。 **Mycat与ShardingSphere的对比** 1. **架构设计**:Mycat...
该项目使用了 SSM+Dubbo+Redis 技术栈,并且使用了 Zookeeper+fastDFS+Spring-Security+Linux+MyCat+Nginx+CAS 等技术。 四、技术栈 王伟的技术栈包括: * 后台技术:Spring、Mybatis、SpringMVC、git、SVN、...
- Mybatis:轻量级的持久层框架,提供SQL语句的动态执行。 4. **权限控制**: - Shiro:轻量级的安全框架,用于实现用户认证和授权。 5. **数据库技术**: - Oracle:一种广泛使用的商业关系型数据库管理系统。...
通过Java接口,开发者可以方便地集成Mycat2到他们的应用中,同时利用Java的丰富工具和框架,如Spring、MyBatis等,进一步优化数据库操作。这使得Mycat2不仅限于简单的数据分片,还能实现高级的数据库管理功能,如...
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**:连接池...