# jdbc-template-plus
**Repository Path**: cofenghen/jdbc-template-plus
## Basic Information
- **Project Name**: jdbc-template-plus
- **Description**: java jdbc-template扩展支持orm,支持增删改查,编写sql在代码里,逻辑灵活,支持dynamic-datasource多数据源,相比mybatis等xml等风格,提供了另外的选择,简单、轻量,适合spring boot 3.0以上的版本
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-05-14
- **Last Updated**: 2025-05-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# jdbc-template-plus
java jdbc-template扩展支持orm,支持增删改查,编写sql在代码里,逻辑灵活,支持dynamic-datasource多数据源,相比mybatis等xml等风格,提供了另外的选择,简单、轻量
maven 引入:
``` yaml
io.gitee.cofenghen
jdbc-template-plus
1.0.0
```
## 背景
## 快速开始
### 简单模式
在application 引入 @EnableOrmTemplate
例如范例
``` java
@Slf4j
@SpringBootApplication
@EnableOrmTemplate //引入注入启动项
public class JdbctemplatePlusExampleApplication {
public static void main(String[] args){
}
}
```
就可以在其他服务层引入注入方法 ,如下
``` java
@Autowired
private IOrmTemplate ormOperations;
```
- 新增
``` java
User user=new User();
user.setName("11");
user.setId(1)
var result2 = ormOperations.insert(user);
```
- 修改
``` java
user.setApproveUsername("测试");
var result3 = ormOperations.updateById(user.getId(),user);
```
- 删除
``` java
ormOperations.deleteById(User.class,1)
```
- 按主键查询
``` java
ormOperations.queryById(User.class,1);
```
- 按多条件查询
``` java
QueryCondition queryCondition=new QueryCondition<>();
queryCondition.add(new Condition(ArcSearch::getId, Operator.EQ,1));
queryCondition.add(new Condition(ArcSearch::getName, Operator.EQ,"颤三"));
var result = ormOperations.query(User.class,queryCondition);
```
### 仓储模式
### 分页
ormOperations.ado().selectPageList("user a","a.*",null,null,"searchid",null,null,null,1,10,"",ArcSearch.class);
分页操作统一规范,默认采用ROW_NUMBER(),Oracle 、MySQL(8+)、SQL Server、PostgreSQL 都支持
若各别版本不支持可重写方言 ,比如重写oracle范例
新建一个类 代码如下
``` java
public class OracleServerSQLDialect implements DialectStrategy {
@Override
public SelectPageMapListSqlModel getLimitSql(String sql_table, String sql_column, String sql_where, String pk_Filed, String orderField, String orderType, LinkedHashMap defaultOrderFieldMap, int pageIndex, int pageSize, String sql_column_top, boolean selectCount) {
//代码可以参照 DefaultSQLDialect
SelectPageMapListSqlModel selectPageMapListSqlModel=new SelectPageMapListSqlModel();
return selectPageMapListSqlModel;
}
}
```
在启动项main引入
``` java
BaseJdbcTemplePlus.registerDialect("Oracle",OracleServerSQLDialect::new);
#其他数据库
BaseJdbcTemplePlus.registerDialect("MySQL", MySQLDialect::new);
BaseJdbcTemplePlus.registerDialect("Oracle", OracleSQLDialect::new);
BaseJdbcTemplePlus.registerDialect("SQL Server", PostgreSQLDialect::new);
BaseJdbcTemplePlus.registerDialect("PostgreSQL", PostgreSQLDialect::new);
BaseJdbcTemplePlus.registerDialect("SQLite", SQLServerSQLDialect::new)
```
## 版权
JdbcTemplatePlus is under the Apache 2.0 license. See the [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0) file for details.