你有几个邮箱呢?你是怎么分配它们的用途呢?码云账号增加多邮箱支持!
指数
0
Watch 65 Star 171 Fork 42

drinkjava2 / jSqlBoxJavaApache-2.0

加入码云
与超过 300 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
基于DbUtils内核的全功能数据库持久层工具 展开 收起

克隆/下载
Loading...
README.md

English instructions please see "README_ENG.md"

jsqlbox-logo

基于DbUtils内核的全功能数据库持久层工具

maven code style

简介 | Intro

jSqlBox是一个基于DbUtils内核开发的全功能开源Java数据库持久层工具,在架构、功能、易用性等方面都不输于其它持久层工具。

与其它持久层工具对比

请见与其它DAO工具对比, 可以对jSqlBox的功能与特点有一个大概的了解。

架构 | Architecture

image

优点 | Advantages

  • 架构合理:模块式架构,各个模块都可以脱离jSqlBox单独存在。
  • 跨数据库:基于jDialects,支持80多种数据库的分页、DDl脚本生成、实体源码生成、函数变换、主键生成等功能。
  • 与DbUtils兼容:内核基于DbUtils, 原有基于DbUtils的旧项目可以无缝升级到jSqlBox。
  • 多种SQL写法:Inline方法、模板方法、DataMapper、ActiveRecord、链式写法等。
  • 多项技术创新:Inline风格、多行文本支持、实体越级关联查询、树结构查询等。
  • 动态配置:除了支持实体Bean注解式配置,jSqlBox还支持在运行期动态更改配置。
  • 无会话设计:无会话设计(Sessionless),是一个真正轻量级的、全功能的持久层工具,也可以作为其它持久层工具的补丁来使用。
  • 自带声明式事务:内置微型声明式事务工具jTransactions。也支持配置成Spring事务。
  • 主从、分库分表:无需引入第三方工具,jSqlBox本身就具备主从、分库分表功能。
  • 学习曲线平滑:模块化学习,了解了各个子模块,就掌握了jSqlBox,jSqlBox模块部分只有20多个类。

文档 | Documentation

中文 | English | JavaDoc

配置 | Configuration

在pom.xml中加入:

<dependency>
   <groupId>com.github.drinkjava2</groupId>
   <artifactId>jsqlbox</artifactId> <!--用于Java6、7环境-->
   <version>2.0.6</version> <!--或最新版-->
</dependency> 

<dependency>
   <groupId>com.github.drinkjava2</groupId>
   <artifactId>jsqlbox-java8</artifactId> <!--用于Java8及以上环境-->
   <version>2.0.6/version> <!--或最新版-->
</dependency> 

入门 | First Example

以下示例演示了jSqlBox的基本配置和使用:

public class HelloWorld implements ActiveEntity<HelloWorld> {
    private String name;
    public String getName() {return name; }
    public void setName(String name) {this.name = name; }

    public static void main(String[] args) {
        DataSource ds = JdbcConnectionPool
                .create("jdbc:h2:mem:DBName;MODE=MYSQL;DB_CLOSE_DELAY=-1;TRACE_LEVEL_SYSTEM_OUT=0", "sa", "");
        SqlBoxContext ctx = new SqlBoxContext(ds);
        SqlBoxContext.setGlobalSqlBoxContext(ctx);
        String[] ddls = ctx.toCreateDDL(HelloWorld.class);
        for (String ddl : ddls)
               ctx.nExecute(ddl);

        new HelloWorld().putField("name", "Hello jSqlBox").insert();
        System.out.println(ctx.iQueryForString("select name from HelloWorld"));
    }
}

范例 | Demo

  • jBooox 这是一个微型MVC Web演示项目,基于三个开源软件jBeanBox、jSqlBox、jWebBox的整合。
  • jsqlbox-in-actframework 演示jSqlBox与ActFramework框架的整合,分别展示利用jBeanBox和Guice来实现声明式事务。
  • jsqlbox-in-jfinal 演示jSqlBox与jFinal的整合,用jSqlBox替换掉jFinal自带的DAO工具。
  • jSqlBox-in-Spring 这是一个MVC Web项目,演示jSqlBox在Spring+Tomcat环境下的配置和使用, IOC、AOP和声明式事务均使用Spring的。
  • jsqlbox-in-springboot 演示jSqlBox在SpringBoot环境下的配置和使用。
  • jsqlbox-in-springboot-mybatis 演示在SpringBoot环境下jSqlBox和MyBatis的混合使用。
  • jsqlbox-java8-demo 主要演示jSqlBox-Java8版的两个特点:实体类只需要声明接口、利用Lambda来写SQL。
  • jsqlbox-xa-atomikos 一个jSqlBox在分布式事务环境下分库分表操作的演示。
  • jsqlbox-beetlsql 演示如何在jSqlBox中开发和使用其它模板引擎如BeetlSQL。

作者其它开源项目 | Other Projects

期望 | Futures

欢迎发issue提出更好的意见或提交PR,帮助完善jSqlBox

版权 | License

Apache 2.0

关注我 | About Me

Github
码云

点评 ( 35 )

你可以在登录后,发表评论

搜索帮助