Skip to content

drinkjava2/enhancedjdbc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EnhancedJDBC

开源协议: Apache 2.0

EnhancedJDBC(又名jDbPro)是一个建立于Apache Commons DbUtils上,并对其增强了动态SQL功能的JDBC持久层工具,它是一个承上(包装JDBC,支持多种SQL写法)启下(作为ORM项目内核)的项目,但它本身也是一个独立的工具,可以单独使用,其运行环境为Java6或以上。

作为ORM项目的内核,EnhancedJDBC仅关注于改进JDBC操作的易用性,它不考虑对象映射、关联映射、数据库方言、分布式事务等高级功能,这些高级功能属于ORM工具如jSqlBox负责的范畴。jSqlBox的设计理念是尽量将每个功能点设计成独立的小项目,隔离它们的相互依赖性,每个小项目都可以单独使用,整合在一起就成了jSqlBox,这与Hibernate之类将JDBC、ORM功能捆绑在一起的持久层工具是不同的。目前在这一理念下已经开发的工具项目有:
1)jDialects,这是一个支持70多种方言的SQL分页、DDL支持、JPA支持工具,用于解决利用JDBC工具进行跨数据库开发的问题。
2)jTransactions,这是一个将声明式事务作为单独的项目提供的小工具,目前包含一个微型实现TinyTx,并支持配置成使用Spring的声明式事务。
3)jBeanBox,这是一个微型IOC/AOP工具,如果不想用笨重的Spring-Ioc,可以用它来替代。
4)EnhancedJDBC,即本项目,主要优点是利用纯JDBC完成最主要的功能:SQL操作,但是加入了内嵌SQL式写法、分页、多租户支持,让纯JDBC开发也可以达到高效率、多功能,用最低的学习成本获得较高的开发效率和接近底层JDBC的运行效率。
5)jSqlBox,这是一个整合了上述子项目的ORM工具,除了拥有EnhancedJDBC的所有功能并与DbUtils兼容之外,主要增加了实体映射、ActiveRecord、声明式事务、分布式事务等高级功能。得益于EnhancedJDBC等子项目做了大量底层工作,jSqlBox项目只用了约40个类就构成了一个功能完备的ORM工具。

如何引入EnhancedJDBC到项目?

在项目的pom.xml文件中加入如下行:

   <dependency>  
      <groupId>com.github.drinkjava2</groupId>  
      <artifactId>enhanced-jdbc</artifactId>  
      <version>5.0.7.jre8</version> <!--或Maven最新版-->
   </dependency>

EnhancedJDBC不依赖于任何第三方库, 即可以用上述Maven的方式引入,也可以将它的源码拷到项目中即可使用。

说明

从2.0.2版本起,EnhancedJDBC即不再有自已的说明文档,因为它的功能已在jSqlBox中的用户手册中有比较详细的介绍。 以下两行是个简短的使用示例,更多使用方式请参见jSqlBox的用户手册。

public class HelloWorld  {
	@Id
	@Column(length = 20)
	private String name;

	public String getName() {
		return name;
	}

	public HelloWorld setName(String name) {
		this.name = name;
		return this;
	}

	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", "");
		JdbcContext.setGlobalNextAllowShowSql(true);
		JdbcContext ctx = new JdbcContext(ds);
		JdbcContext.setGlobalDbContext(ctx);
		ctx.executeDDL(ctx.toCreateDDL(HelloWorld.class)); 
		
		new HelloWorld().setName("Hellow jSqlBox");
		JDBC.exe("insert into HelloWorld (name) values(?)",JDBC.par("tom"));
		System.out.println(JDBC.qryString("select name from HelloWorld"));
		ctx.executeDDL(ctx.toDropDDL(HelloWorld.class));
	}
}

About

EnhancedJDBC is a enhanced pure JDBC tool based on Apache Commons DbUtils

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages