拓展阅读
ORM-01-Hibernate、MyBatis、EclipseLink、Spring Data JPA、TopLink、ActiveJDBC、Querydsl 和 JOOQ 对比
ORM-02-Hibernate 对象关系映射(ORM)框架
ORM-02-JPA Java Persistence API 入门介绍
前言
自己通过 jdbc 实现了一个 数据库查询工具,不过后来想拓展查询功能时,总觉得不够尽兴。
所以在想能不能把 SQL 的构建单独抽离出来。
DenzelCode/AdvancedSQL
AdvancedSQL 是一个 SQL 查询构建器和/或连接器,可以帮助您在数据库上生成/修改信息,而无需编写任何 SQL 代码。
有时编写 SQL 查询代码可能会有些无聊和繁琐,AdvancedSQL 是那些希望继续编码而无需在 Java 代码中编写语法外的代码(SQL 查询)的开发人员的最佳选择。
下载
您可以从以下链接下载最新的 JAR 包:AdvancedSQL Releases
依赖 Maven
如果您使用 Maven,可以将以下依赖项添加到您的 pom.xml
文件中:
<dependency>
<groupId>com.code</groupId>
<artifactId>advancedsql</artifactId>
<version>2.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/AdvancedSQL.jar</systemPath>
</dependency>
示例
以下是一些使用 AdvancedSQL 的示例:
连接到数据库
import com.code.advancedsql.*;
try {
MySQL mySQL = new MySQL("127.0.0.1", 3306, "root", "password", "database");
if (mySQL.isConnected()) {
System.out.println("Connected!");
}
} catch (SQLException e) {
e.printStackTrace();
}
创建表格
import com.code.advancedsql.*;
import com.code.advancedsql.table.ITable;
try {
MySQL mySQL = connect();
// Table
ITable table = mySQL.table("users");
// Create table
Create create = table.create().ifNotExists();
// Table columns
create.id();
create.string("first_name");
create.string("last_name");
create.string("test");
Boolean result = create.execute();
// Print query string and result.
System.out.println(create);
System.out.println(result);
} catch (SQLException e) {
e.printStackTrace();
}
修改表格
import com.code.advancedsql.*;
import com.code.advancedsql.query.action.Add;
import com.code.advancedsql.query.action.Modify;
try {
MySQL mySQL = connect();
// Alter columns
Alter alter = mySQL.table("users").alter();
// Add columns
Add add = alter.add();
add.string("token").nullable();
add.string("connection_id").nullable();
// Drop columns
com.code.advancedsql.query.action.Drop drop = alter.drop();
drop.column("test");
// Modify columns
Modify modify = alter.modify();
modify.integer("connection_id").nullable();
// Execute query
Boolean result = alter.execute();
// Print query string and result.
System.out.println(alter);
System.out.println(result);
} catch (SQLException e) {
e.printStackTrace();
}
插入数据
import com.code.advancedsql.*;
try {
MySQL mySQL = connect();
// Insert
Insert query = mySQL.table("users").insert();
query.field("first_name", "Denzel");
query.field("last_name", "Code");
int execute = query.execute();
// Print query string and result.
System.out.println(query);
System.out.println(execute);
} catch (SQLException e) {
e.printStackTrace();
}
许可信息
该项目根据 LGPL-3.0 许可证授权。请参阅 LICENSE 文件了解详情。
小结
感觉这个做的比较多,不仅仅局限于 DQL + DML,还包含 DDL。
参考资料
https://github.com/DenzelCode/AdvancedSQL