jdao 2.0.0 发布


Jdao 基于Java的持久层框架,零配置,零SQL操作持久层


  • 用最简单的方式操作数据库
  • 支持全对象方式读写数据;
  • 支持事务,缓存,批处理等操作;
  • 支持原生sql 操作;
  • 支持注册多数据源,设置对象,类,包名对应不同数据源;
  • 支持自动生成数据表对应的java Bean对象;
  • jdao使用非常简单方便,可用于快速构建持久层封装服务;

基本使用

Jdao 数据表对应的javaBean:

import io.github.donnie4w.jdao.base.DefName;
import io.github.donnie4w.jdao.base.Table;
import io.github.donnie4w.jdao.type.*;
 public class Hstest2 extends Table<Hstest2> {
		public LONG id;
		public STRING name;
		public SHORT age;
		public DATE createtime;
		public DOUBLE money;
		public BINARY binary;
		public FLOAT real;
		//当变量(或类名)与表不对应时,用注解DefName修正
		@DefName(name = "level") 
		public INT level2;
}
 

与数据表 hstest2 表名列名一一对应

Field Type  
id bigint NOT NULL AUTO_INCREMENT
name varchar(100) NULL
age tinyint NULL
createtime timestamp NULL
money double NULL
binary binary(100) NULL
real float NULL
level int NULL

hstest2 可直接操作数据:

设置数据源(一切操作从设置数据源开始)
这里使用druid 演示:
Properties p = new Properties()
p.load(new FileReader("druid.properties"));
DataSource ds = DruidDataSourceFactory.createDataSource(p);
DaoFactory.registDefaultDataSource(ds);
以上完成jdao 数据源的设置操作,该数据源默认适用全部持久层对象
 

插入数据

Hstest2 h = new Hstest2();
h.money.setValue(11.2);
h.age.setValue((short) 22);
h.name.setValue("tom");
h.binary.setValue("hello".getBytes(StandardCharsets.UTF_8));
h.createtime.setValue(new Date());
h.real.setValue(33.3f);
h.level2.setValue(33);
h.insert();
以上完成插入数据的操作
 

查询数据

Hstest2 h = new Hstest2();
h.where(h.id.GE(1),h.name.LIKE("tom"));
List<Hstest2> list = h.select(h.id,h.name);
for (Hstest2 ht : list) {
			System.out.println(ht.id.getValue());
}
以上对应查询sql:
select id,name from hstest2 where `id`>=1 and `name` like %'tom'%
 

事务操作

Transaction t = new Transaction(DataSourceTest.getDataSourceByDruid());
Hstest hstest = new Hstest();
hstest.setTransaction(t);//使用事务t
hstest.rowname.setValue("wu");
hstest.value.setValue("dong");
hstest.insert();
Hstest hstest2 = new Hstest();
hstest2.setTransaction(t); //使用事务t
hstest2.rowname.setValue("wu2");
hstest2.value.setValue("dong2");
hstest2.insert();
t.commit(); //提交
//t.rollBack(); //回滚
//t.close();//关闭事务
 

批处理

Hstest ht = new Hstest();
ht.rowname.setValue("1111");
ht.value.setValue("2222");
ht.addBatch();//加入批处理
ht.rowname.setValue("3333");
ht.value.setValue("4444");
ht.addBatch(); //加入批处理
ht.endBatch(); //批处理结束并执行
 

java 支持对象对数据库 增删改查的全部操作,返回相应的对象

数据表操作全部映射为简单的对象操作


复杂的SQL操作,jdao支持原生sql操作,使用DBUtil

第一步,设置数据源,如上面数据源设置即可
例如:
DBUtil dt = new DBUtil()
int id = dt.execute("insert into hstest(`value`,`rowname`)values(?,?)", "11", "aa");
增删改 使用 execute方法
————————————————————————
DBUtil dt = new DBUtil()
dt.selects("select * from hstest where id>?", 0)
List<DBUtil> list = dt.rsList();
for (DBUtil r : list) {
System.out.println(r.getString("value"));
}
查询数据使用 select,返回一行使用selectSingle
 

maven 配置,jdao本身无其他的依赖

		<dependency>
			<groupId>io.github.donnie4w</groupId>
			<artifactId>jdao</artifactId>
			<version>2.0.0</version>
		</dependency>
 

jdao项目地址:https://github.com/donnie4w/jdao

jdao项目地址2:https://gitee.com/donnie4w/jdao

jdao使用demo地址:https://github.com/donnie4w/jdaodemo

jdao使用demo地址2:https://gitee.com/donnie4w/jdaodemo


相關推薦

2024-08-01

简介:Jdao是一种创新的持久层解决方案。主要目的在于 减少编程量,提高生产力,提高性能,支持多数据源整合操作,支持数据读写分离,制定持久层编程规范。 灵活运用Jdao,可以在持久层设计上,减少30%甚至50%以上的编程

2024-08-07

上的痛点。关于 hibernate与mybatis在痛点问题,可以参考 jdao使用文档 gdao设计结构简洁且严谨,所有接口与函数均能见名知意。即使从未接触过gdao,看到gdao持久层代码,也能马上知道它的代码表达的意思和相关的数据行为。

2023-09-10

添加实验性的 WebAssembly 构建支持(WebGL 2.0),由 @nowasm 贡献 已知问题 WebGL context lost 尚未处理 部署在 github pages 的 demo 可快速预览,注意:由于  Github 限制,未开启 WASM 多线程支持,因此多线程模块测试会

2023-09-29

oauth2-shiro v2.0.0版本正式发布,在距上一次发布7年后,更新了大版本,对安全漏洞等问题进行大升级。 该版本主要更新内容: 升级使用springboot,调整工程结构,打包由war换成jar,使用thymeleaf替换servlet/jsp;spring大版本升级

2023-01-11

SQLAlchemy 2.0 发布了第 2 个 RC 版本。 下载地址:https://www.sqlalchemy.org/download.html SQLAlchemy 是一个 Python 的 SQL 工具包以及数据库对象映射 (ORM) 框架。它包含整套企业级持久化模式,专门用于高效和高性能的数据库访问。 发布公

2022-11-06

SQLAlchemy 2.0 的第三个 Beta 版本已发布。 SQLAlchemy 是一个 Python 的 SQL 工具包以及数据库对象映射 (ORM) 框架。它包含整套企业级持久化模式,专门用于高效和高性能的数据库访问。 发布公告写道,SQLAlchemy 2.0.0 第三个 Beta 版

2023-02-03

SQLAlchemy 2.0 发布了首个补丁更新:2.0.1。 下载地址:https://www.sqlalchemy.org/download.html 公告写道,SQLAlchemy 2.0.0 正式推出后获得了非常高的关注,每天大约有一半的下载量(600K/天)都来自于它。尤其是 ORM 的声明式注释 (Declarative

2022-10-23

SQLAlchemy 2.0.0 第二个 Beta 版本已发布。 SQLAlchemy 是一个 Python 的 SQL 工具包以及数据库对象映射 (ORM) 框架。它包含整套企业级持久化模式,专门用于高效和高性能的数据库访问。 发布公告写道,第一个 Beta 测试版发布后,获得

2024-07-24

1 是 2.0.x 系列中的最后一个版本,2.1.0rc1 将会很快会发布。 Improvements np.quantile使用closest_observation方法选择最接近的偶数阶统计量 这将 border cases 下 nearest 的定义从最接近奇数阶统计量更改为最接近偶数阶统计量。现

2022-10-15

SQLAlchemy 2.0.0 首个 Beta 版本已发布。SQLAlchemy 是一个 Python 的 SQL 工具包以及数据库对象映射 (ORM) 框架。它包含整套企业级持久化模式,专门用于高效和高性能的数据库访问。 发布公告写道,2.0 旨在适应现代化 Python 的实际使

2022-10-08

Spring Cloud 2022.0.0 发布了第 5 个里程碑版本。 值得关注的变化 Spring Cloud Netflix 升级到 Eureka 2.0.0-rc.3。Eureka 2.0.0 是 Eureka 的一个新分支,与 7 年前的旧 2.x-archive 分支实验无关。新的 2.x 分支是为了与 JakartaEE 兼容,这也

2023-02-12

SQLAlchemy 2.0.3 已发布。 此版本修复了 SQL 表达式机制中确定的一个严重回归错误,其中正确的括号将无法应用于较大复合表达式的单个复合元素,该表达式具有两个以上的元素,由一个公共运算符连接在一起。 官方强烈建议 2.0

2023-02-19

SQLAlchemy 2.0.4 现已发布。 2.0.4 版为 2.0 系列提供了一些新功能,包括对 Pydantic 数据类的插件支持、改进的混合属性类型结构,以及在使用 ORM 声明映射时显式控制表列排序顺序的能力。 详情可查看 Changelog。 下载地址:https://ww

2022-10-31

距离2.1.1版本发布2个月后,Nacos社区又迎来一波大更新。本次发布包含了2个server版本,1个go-sdk版本以及新语言sdk的预告。 以下内容来自发布公告: Nacos 2.1.2 2.1.2 主要增强了控制台的UI效果,变更了控制台的样式,使得内容更