FastSQL - 基于 spring-jdbc 的 ORM 框架


Apache
跨平台
Java

软件简介

FastSQL一个基于spring-jdbc 的简单 ORM 框架,它支持 sql 构建、sql 执行、命名参数绑定、查询结果自动映射和通用 DAO。结合了
Hibernate/JPA 快速开发和 Mybatis 高效执行的优点。

FastSQL 可以完全满足你控制欲,可以用 Java 代码清晰又方便地写出 sql 语句并执行。

2.1 安装

要使用 FastSQL, 只需将 fastsql-1.0.0.jar 文件置于 classpath 中即可。

如果使用 Maven 来构建项目,则需将下面的 dependency 代码置于 pom.xml 文件中:

<dependency>
    <groupId>top.fastsql</groupId>
    <artifactId>fastsql</artifactId>
    <version>1.0.0</version>
</dependency>

如果使用 Gradle 来构建项目,则需将下面的代码置于 build.gradle 文件的 dependencies 代码块中:

compile 'top.fastsql:fastsql:1.0.0'

2.2 构建 SQLFactory

你可以直接从 Java 程序构建一个 SQLFactory ,如果使用SQL的执行功能,至少需要设置 DataSource 。

//新建一个DataSource(这里使用了Spring-Jdbc的SimpleDriverDataSource)
DataSource dataSource = new SimpleDriverDataSource([传入url,username等]);

SQLFactory sqlFactory = new SQLFactory();
sqlFactory.setDataSource(dataSource);

2.3 从 SQLFactory 中获取 SQL

既然有了 SQLFactory ,我们就可以从中获得 SQL 的实例了。SQL类完全包含了面向数据库执行 sql 命令所需的所有方法。 你可以通过 SQL
实例来构建并直接执行 SQL 语句。例如:

SQL sql = sqlFactory.createSQL();
Student student = sql.SELECT("*").FROM("student").WHERE("id=101").queryOne(Student.class);

2.4 作用域(Scope)和生命周期

SQLFactory

SQLFactory 一旦被创建就应该在应用的运行期间一直存在,没有任何理由对它进行清除或重建。 使用 SQLFactory
的最佳实践是在应用运行期间不要重复创建多次,多次重建 SQLFactory 被视为一种代码“坏味道(bad smell)”。 因此 SQLFactory
的最佳作用域是应用的作用域。有很多方法可以做到,最简单的就是使用单例模式或者静态单例模式
(如果在Spring环境中,利用Spring容器的功能,你完全可以把它设置为一个单例bean)。

SQL

SQL 实例是有状态的 ,不是线程安全的,是不能被共享的。即使在同一个线程中每执行sql语句一次,都需要重新构建一个 SQL 实例。 绝对不能将 SQL
实例的引用放在一个类的静态域,甚至一个类的实例变量也不行。