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 被视为一种代码“坏味道(bad smell)”。 因此 SQLFactory 的最佳作用域是应用的作用域。有很多方法可以做到,最简单的就是使用单例模式或者静态单例模式 (如果在Spring环境中,利用Spring容器的功能,你完全可以把它设置为一个单例bean)。
SQL 实例是有状态的 ,不是线程安全的,是不能被共享的。即使在同一个线程中每执行sql语句一次,都需要重新构建一个 SQL 实例。 绝对不能将 SQL 实例的引用放在一个类的静态域,甚至一个类的实例变量也不行。