今天突然要写一个小的系统,因为什么都是新的,说要框架也要重新搭(bs下公司没有基础框架),ibatis自己没有怎么搭过,所以这次直接选择spring jdbc,但是要是喜欢ibatis的代码sql分离,所以自己百度了下发现spring 的jdbc代码分离有人写了,但是需要配置各个xml ,相信spring都是配置加自动的,所以自己,写了一部分,自动扫描map.xml然后加载,现在都是约定大于配置,这样我们约定放置sql的文件名和方式就可以了 下面是代码: 这个是主要的类,单例的
下面这个是扫描类
- package com.copote.util;
-
- import java.io.File;
- import java.util.ArrayList;
- import java.util.List;
-
- /**
- * 扫描service下面的所有map.xml
- *
- * @author jueyue 2013年8月5日
- */
- public class ScanMapFile {
-
- private List<String> sqls;
-
- public ScanMapFile(){
- sqls = new ArrayList<String>();
- }
-
- public List<String> getsqlMaps(String path){
- GetSql(ScanMapFile.class.getResource(path).getPath());
- return sqls;
- }
-
- /*
- * 递归调用查找指定文件加下所有文件
- */
- private void GetSql(String path) {
- File rootDir = new File(path);
- if (!rootDir.isDirectory()) {
- if(rootDir.getName().equalsIgnoreCase("map.xml")){
- sqls.add(rootDir.getAbsolutePath());
- }
- } else {
- String[] fileList = rootDir.list();
- for (int i = 0; i < fileList.length; i++) {
- path = rootDir.getAbsolutePath() + "\\" + fileList[i];
- GetSql(path);
- }
- }
- }
- }
复制代码
我们扫描的是所有的map.xml这样就加载了所有的sql
- <?xml version="1.0" encoding="UTF-8"?>
- <sqls>
- <sqlElement key="account.login">
- <![CDATA[
- select * from user
- </sqlElement>
- </sqls>
复制代码
然后在我们的dao里面这样写
- @Override
- public AccountEntity login(AccountEntity account) {
- String sql = SQLMap.getInstance().getSql("account.login");//加载sql
- List<AccountEntity> temp = jdbcTemplate.query(sql,
- new Object[] { account.getVAcctCode(), account.getVAcctPwd(),
- account.getCorgId() }, new AccountRowMapper());
- return temp.size() == 1?temp.get(0):null;
- }
复制代码
这样我们就获取了对于的sql,就分离了,而且自动扫描 最后记得在web.xml添加启动监听,进行初始化
jeecg 首发 |
相关推荐
这个完整的代码示例覆盖了Sharding-JDBC的主要技术点,使开发者可以快速理解和应用到实际项目中。 **一、Sharding-JDBC介绍** Sharding-JDBC是一款轻量级的Java框架,它以客户端直连数据库的方式,提供透明化的...
本压缩包“sharding jdbc 基于java代码的配置.zip”显然提供了使用Java代码配置Sharding-JDBC的方法,下面我们将详细探讨如何进行配置以及Sharding-JDBC的核心功能和工作原理。 首先,Sharding-JDBC的工作原理是...
ShardingJDBC可以在不改变业务代码的情况下,通过配置实现数据库的水平分片,从而提高系统的读写性能。下面我们将深入探讨ShardingJDBC的功能和实现原理。 **1. 数据库分片** ShardingJDBC的核心功能就是数据库分片...
通过这个demo,开发者可以快速了解和实践Sharding-JDBC的读写分离功能,为自己的项目带来更高的性能和扩展性。同时,这也是学习分布式数据库解决方案的一个良好起点,有助于提升对数据库管理和架构设计的理解。
3. **编写Java代码**:在Java代码中,你可以使用`ShardingDataSourceFactory.createDataSource()`方法创建ShardingDataSource对象,该对象是Spring JDBC的`DataSource`接口实现,可以直接注入到Spring Bean中。...
**JDBC(Java Database Connectivity)**:是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。 **分页**:是在大量数据展示时,将数据分成若干个页面进行...
封装JDBC操作代码是为了提高代码的复用性,减少重复工作,并且能够更好地管理和控制数据库连接,避免资源泄露。下面我们将详细探讨这个主题。 1. **JDBC基础概念** JDBC是Java API的一部分,它提供了连接数据库、...
MVC模式是一种软件设计模式,它将业务逻辑(Model)、用户界面(View)和控制流程(Controller)分离,使得代码结构清晰,易于维护和扩展。 在实际项目中,JDBC是Java语言访问数据库的标准API,它允许Java开发者...
### Sharding-JDBC 教程:Spring Boot 整合 Sharding-JDBC 实现读写分离 #### 一、Sharding-JDBC 和 Spring Boot 的简介 **Sharding-JDBC** 是阿里巴巴开源的一个轻量级 Java 框架,主要用于对数据库进行分片、...
**标题:“自己写个JDBC封装”** 在Java开发中,JDBC(Java Database Connectivity)是连接Java应用程序和关系数据库的标准接口。然而,原始的JDBC API使用起来相对繁琐,需要编写大量的重复代码,例如建立数据库...
总结起来,Spring Data JDBC通过提供高级的抽象和自动化,降低了数据库操作的复杂性,提高了开发效率,而JDBC则是底层的数据库访问API,灵活性更高但需要更多的手动配置和代码编写。根据项目需求和团队技能,开发者...
拦截器在方法调用前后执行特定的逻辑,它可以在不修改原始JDBC代码的情况下,实现对数据库操作的增强。Java的动态代理机制允许我们动态地创建代理类,这使得代码更加灵活,易于扩展和维护。 总的来说,JDBC代理类...
**标题解析:** "JDBC练习小项目用于java初学者" 这个标题表明这是一个针对初学者设计的Java编程练习项目,重点在于JDBC(Java Database Connectivity)的应用。JDBC是Java语言中用来规范客户端程序如何连接和操作...
1. **Spring MVC**:这是一个MVC设计模式的实现,允许开发者将业务逻辑、视图和控制逻辑分离,提高代码的可维护性和可测试性。在Web服务中,Spring MVC可以用于构建RESTful API,这些API可以被其他应用或服务消费。 ...
总的来说,Spring JDBC的JdbcTemplate是Spring框架中用于数据库操作的关键组件,通过回调接口和模板方法设计,它极大地简化了数据库访问的代码,同时也提供了良好的异常处理和资源管理机制。理解和掌握JdbcTemplate...
在现代Web开发中,前后端分离是一种常见的架构模式,它将应用程序分为两个主要部分:前端(客户端)和后端(服务器端)。这种模式允许前端专注于用户体验和交互,而后端则负责业务逻辑和数据处理。本项目中,“jdbc...
【图书管理系统】是一种用于管理图书馆资源的软件应用,它涵盖了图书的入库、...然而,随着技术的发展,现代的Web应用更倾向于使用MVC框架(如Spring MVC)或者前后端分离的开发模式,以提高开发效率和系统的可维护性。
一、Sharding-JDBC 与 JOOQ 的兼容性测试 - **测试项** - 不分片时,使用默认数据源的增、删、改、查 - 分片时,使用`ShardingDataSource`数据源的增、删、改、查 - 分片表与不分片表的连表查询...
【标题】"sharding-jdbc按月分表样例"是一个关于使用Sharding-JDBC进行数据库分片的示例项目,旨在展示如何根据月份动态地将数据分散到不同的表中,以实现数据的水平扩展和负载均衡。Sharding-JDBC是阿里巴巴开源的...
2、sharding-jdbc (1)、实现多种模式的读写分离 (2)、支持事务 (3)、配置中心化 (4)、存储过程不能正常解析 ———————————————— 版权声明:本文为CSDN博主「毛豆有毛没豆」的原创文章,...