拓展阅读

linq

querydsl

ORM-01-Hibernate、MyBatis、EclipseLink、Spring Data JPA、TopLink、ActiveJDBC、Querydsl 和 JOOQ 对比

ORM-02-Hibernate 对象关系映射(ORM)框架

ORM-02-JPA Java Persistence API 入门介绍

orm-04-Spring Data JPA 入门介绍

ORM-05-javalite activejdbc

ORM-06-jooq 入门介绍

ORM-07-querydsl 入门介绍

ORM-08-EclipseLink 入门介绍

ORM-09-TopLink

前言

自己通过 jdbc 实现了一个 数据库查询工具,不过后来想拓展查询功能时,总觉得不够尽兴。

所以在想能不能把 SQL 的构建单独抽离出来。

DenzelCode/AdvancedSQL

AdvancedSQL 是一个 SQL 查询构建器和/或连接器,可以帮助您在数据库上生成/修改信息,而无需编写任何 SQL 代码。

有时编写 SQL 查询代码可能会有些无聊和繁琐,AdvancedSQL 是那些希望继续编码而无需在 Java 代码中编写语法外的代码(SQL 查询)的开发人员的最佳选择。

下载

您可以从以下链接下载最新的 JAR 包:AdvancedSQL Releases

依赖 Maven

如果您使用 Maven,可以将以下依赖项添加到您的 pom.xml 文件中:

  [xml]
1
2
3
4
5
6
7
<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 的示例:

连接到数据库

  [java]
1
2
3
4
5
6
7
8
9
10
11
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(); }

创建表格

  [java]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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(); }

修改表格

  [java]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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(); }

插入数据

  [java]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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