package com.cts.test;
import java.util.List;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.cts.entity.UserEntity;
import com.cts.service.UserService;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class TestDemo {
static Logger logger = LoggerFactory.getLogger(TestDemo.class);
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("classpath*:/*.xml");
logger.debug("=======");
UserService mapper = context.getBean(UserService.class);
log.info("start = ");
for(int i=0;i<=40;i++){
mapper.insertOne(new UserEntity(i, "hello"+i, i));
}
List<UserEntity> list = mapper.selectAll();
for(int i=1;i<list.size();i++){
UserEntity userEntity = mapper.selectByPk(i);
logger.info(userEntity.getId()+"");
}
}
@Test
public void test(){
ApplicationContext context=new ClassPathXmlApplicationContext("classpath*:spring-mybatis.xml");
log.info("1111");
//UserService userService=(UserService)context.getBean("userService");
}
}
springMvc Mybatis mysql 分库分表-shardingJdbc.zip
需积分: 0 197 浏览量
更新于2023-11-06
收藏 14KB ZIP 举报
在IT行业中,数据库扩展是解决高并发、大数据量场景下的重要技术之一。Spring MVC、MyBatis和MySQL是常见的Web开发框架与数据库系统,而ShardingJDBC则是阿里巴巴开源的一款分布式数据库中间件,用于实现数据库的分库分表。本项目结合了这些技术,旨在提供一种高效且可扩展的解决方案。
Spring MVC是一个基于MVC设计模式的轻量级Java Web框架,它负责处理HTTP请求并将其转发给业务逻辑层,然后将结果返回给客户端。在本项目中,Spring MVC作为前端控制器,协调各个组件工作,包括MyBatis和ShardingJDBC。
MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。在本项目中,MyBatis负责SQL的执行和数据的映射,与ShardingJDBC结合,能够灵活地对分片后的数据库进行操作。
MySQL是广泛使用的开源关系型数据库管理系统,其性能优秀且易于使用。在分库分表的场景下,MySQL需要配合ShardingJDBC来实现数据的水平扩展。
ShardingJDBC的核心功能是分库分表,它通过规则配置,将一个大表拆分为多个小表,分散到不同的数据库中,从而提高查询和写入的效率。ShardingJDBC提供了透明化的数据访问层,使得应用无需感知分布式环境,像操作单个数据库一样操作分布式数据库集群。它支持SQL标准,兼容JDBC和各种ORM框架,如MyBatis、Hibernate等。
在项目"shardingJdbc-master"中,你可能会找到以下关键组件和配置:
1. ShardingRule:定义分库分表的策略,如按照用户ID模10进行分表。
2. 数据源配置:定义了连接不同数据库的数据源,例如ds_0、ds_1表示两个数据库实例。
3. SQL路由:根据ShardingRule解析SQL语句,确定实际执行的数据库和表。
4. 事务管理:ShardingJDBC提供了分布式事务的支持,确保数据的一致性。
5. 配置文件:可能包含sharding-config.yaml或类似的配置文件,用于设置分片规则、数据源信息等。
6. 示例代码:展示了如何在Spring MVC和MyBatis中集成ShardingJDBC,进行数据库操作。
理解并掌握这些知识点,将有助于构建大规模、高并发的Web应用,有效应对数据增长带来的挑战。通过合理地分库分表,可以提高数据库的读写性能,同时利用ShardingJDBC的透明化特性,降低系统改造的复杂度。在实际项目中,还需要关注数据迁移、运维监控、故障恢复等多个方面,确保系统的稳定运行。
武昌库里写JAVA
- 粉丝: 7010
- 资源: 3205
最新资源
- LABVIEW程序实例-删除数组成员.zip
- LABVIEW程序实例-删除数组成员.zip
- LABVIEW程序实例-事件结构.zip
- LABVIEW程序实例-事件结构.zip
- LABVIEW程序实例-数字波形端口设置.zip
- LABVIEW程序实例-数字波形端口设置.zip
- LABVIEW程序实例-数字波形.zip
- LABVIEW程序实例-数字波形.zip
- LABVIEW程序实例-数组大小.zip
- LABVIEW程序实例-数组大小.zip
- LABVIEW程序实例-提取子数组.zip
- LABVIEW程序实例-替换数组成员.zip
- LABVIEW程序实例-提取子数组.zip
- LABVIEW程序实例-通过全局变量发送数据.zip
- LABVIEW程序实例-通过全局变量发送数据.zip
- LABVIEW程序实例-随机数曲线图.vi.zip