之前我发表过两篇文章,与有今天发表的东西是有关联的,因为我今天发表的东西也是从之前那个方向发展过来的。虽然现在已经没有原来的模样了,但希望有兴趣的朋友能一起学习,并给点建议。
在JDK 1.5中实现真正面向对象形式的SQL语句 1
在JDK 1.5中实现真正面向对象形式的SQL语句 2(含有源码,代码生成工具)
接下来讲一下今天主要内容。
在我的开发经验告诉我,我们在一个系统开发过程中,使用最多的SQL语句,主要就是CURD的东
西,所以我们针对每张表,我们需要写的SQL语句也是比较固定的。当然我今天发表的这个东西并不是非常完美的,通过工具生成的代码大部分是可以直接使用
的,但有些地方还是要根据实际业务,做些简单的调整(即使是hibernate生成的配置文件,我们也要花大量的时间去维护它)。
接下来说一下设计思想:
1、使用enum 映射数据库表结构。比如:
-
- public
static
enum TBL_ACTION{//enum 名称,就是数据库中的表名或者视图名
- ACTION_ID,//数据库字段名
- MODULE_ID,
- ACTION_NAME,
- ACTION_REMARK;
- }
通过它我们就很容易维护SQL语句了。如果以后表名,或字段名做了更改,我们就很容易找到我们代码中,哪些地方用到了这个表,维护起来非常的方便。而且我们手写SQL语句时,在IDE下会自动提示,这样可以减少我们书写错误。
2、缓存 CURD SQL语句:
-
- public
static
enum TBL_ACTION{
- ACTION_ID,
- MODULE_ID,
- ACTION_NAME,
- ACTION_REMARK;
- private
static
final
String
tempStr=MODULE_ID+","
+ACTION_NAME+","
+ACTION_REMARK.toString();
- public
static
final
String
selectSql="SELECT "
+ACTION_ID+","
+tempStr+" FROM "
+TBL_ACTION.class
.getSimpleName()+" "
;
- public
static
final
String
insertMySql="INSERT INTO "
+TBL_ACTION.class
.getSimpleName()+" ("
+tempStr+") VALUES (?,?,?);SELECT LAST_INSERT_ID();"
;
- public
static
final
String
insertOracle="INSERT INTO "
+TBL_ACTION.class
.getSimpleName()+" ("
+ACTION_ID+","
+tempStr+") VALUES (?,?,?,?)"
;
- public
static
final
String
deleteSql="DELETE FROM "
+TBL_ACTION.class
.getSimpleName()+" WHERE "
+ACTION_ID;
- public
static
final
String
updateSql="UPDATE "
+TBL_ACTION.class
.getSimpleName()+" SET "
+tempStr.replaceAll(","
, "=?,"
)+"=? WHERE "
+ACTION_ID+"=?"
;
- }
3、
PreparedStatement.setObject(int index,Object obj);和
CallableStatement..setObject(int index,Object obj);为我们提供了很大的方便。在生成代码的DAO
中我们会看到大量的:
-
- parms=new
Object
[]{
- ......
- };
- res =this
.update(session, sql, parms);
4、使用泛型抽取DAO:com.commons.dao.AbstractBaseDao<O>
5、实现分页查询:
-
- /**
-
* 分页查询
-
* @param session
-
* @param sql
-
* @param minIndex
-
* @param maxIndex
-
* @param parms
-
* @return
-
*/
- public
PageInfo<O> listOnPages(DbSession session,String
sql,Object
[] parms,int
minIndex,int
maxIndex)
6、现在只实现了对MySQL和Oracle之前的互相移植。因为本人比较喜欢这两个数据库。我会把源码上传上来,大家可以改源码,增加自己的想法进去。
应用此工具的过程
一、生成代码
1、配置数据库连接
在conf/proxool.properties配置数据库连接信息
2、执行代码生成工具
运行com.tools.codeengle.CodeEngle 或com.tools.codeengle.CodeUI
二、Spring 配置
请参照spring-context.xml和businessConext.xml
三、数据库访问,具体使用方法,请参照源码中的例子。
数据库访问主要用到以下两个类:
com.commons.dao.DbSession;
com.commons.database.SqlExecutor;
- 大小: 153.8 KB
- 大小: 201.1 KB
- 大小: 401.7 KB
分享到:
相关推荐
在实现面向对象的SQL语句时,可以使用泛型来确保操作的数据类型正确。例如,我们可以创建一个泛型类来构建SQL条件: ```java public class SqlCondition<T> { private SqlOperator operator; private T value; ...
在压缩包文件的文件名称列表中,我们看到的".SQL"文件通常包含SQL语句,可能是数据库的脚本文件,用于创建或修改数据库的对象,如表(tablas.SQL)、包(packagebody.SQL和package.SQL)、过程(procedure.SQL)、...
- **面向对象设计**:Java是一种典型的面向对象语言,源码展示了如何设计和实现复杂的类和接口。 - **异常处理**:源码中广泛使用了异常处理机制,有助于理解何时和如何使用try-catch-finally语句。 - **多线程编程*...
此外,MagicalTools不仅仅是一个代码生成工具,它还可以帮助进行数据库管理,如查看数据库结构、执行SQL语句,甚至进行数据导入导出,为开发者提供了一站式的开发辅助。 总之,MagicalTools是一款强大的代码自动...
在JDK 7中,javax.sql提供数据库连接池的支持,javax.print则处理打印任务,javax.imageio用于图像I/O操作,这些都是Java应用程序常用的功能。 2. **com**:这是一个通用的顶级包,通常用于存放公司或组织的代码。...
标题 "springboot+...开发者可以通过这个项目模板快速开始业务逻辑的实现,同时利用代码生成工具提高开发效率。尽管JDK 1.7已过时,但对于学习和理解Spring Boot和MyBatis的集成工作流程来说,仍是一个不错的起点。
《J2EE技术在电子科技大学考试系统中的应用——基于jsp、servlet与sql2005的源码解析》 J2EE(Java 2 Platform, Enterprise Edition)是Java平台上用于构建企业级分布式应用程序的标准框架,它包含了丰富的组件和...
3. switch语句支持字符串:在JDK7之前,switch只能用于常量和枚举,JDK7将其扩展到支持字符串,提高了代码的可读性和灵活性。 4. 多 catch 块:允许在一个catch块中捕获多种异常,简化了异常处理代码。 5. 文件...
2. **Mybatis**:Mybatis是一个轻量级的持久层框架,它简化了数据库操作,将SQL语句与Java代码解耦。在项目中,Mybatis作为数据访问层(DAO),允许开发者编写定制化的SQL,控制参数绑定和结果映射,提供了更灵活的...
7. **编译器(Javac)**:JDK源码中包含了Javac编译器,它将Java源代码编译成字节码。通过查看`com.sun.tools.javac`包,我们可以学习到编译器的工作原理。 8. **JDBC(Java Database Connectivity)**:Java的...
在这个项目中,开发者利用JSP的动态网页生成能力与SQL的强大数据处理功能,为用户提供了一个完整的购书流程,包括浏览、搜索、购买和支付等步骤。 **JSP技术** JSP是Java平台上的一个重要组成部分,它允许开发者将...
《Java JDK实例开发宝典》源码是一份涵盖了Java编程语言和JDK(Java Development Kit)广泛使用领域的宝贵资源。这份源码集合旨在为开发者提供深入理解Java API、类库和核心概念的实际示例,帮助他们在实践中提升...
7. **Mapper 代理**:MyBatis 使用 JDK 动态代理或者 CGLIB 生成 Mapper 接口的代理对象,使得在调用接口方法时,实际上执行的是已映射好的 SQL 语句。 8. **事务管理**:MyBatis 支持手动和自动的事务管理,通过 ...
1. **Switch Expressions增强**:在JDK 15中,switch语句被扩展为switch表达式,这使得代码更加简洁且易于理解。现在,可以在一个表达式中使用switch,返回一个值,而不仅仅是控制流程。 2. **文本块(Text Blocks...
在IT行业中,Java和JDK是两个至关重要的概念,它们是构建强大且高效软件系统的基础。本教程"Java-JDK数据库系统开发Web开发源码"旨在深入探讨如何使用Java编程语言和Java Development Kit (JDK)进行Web开发,特别是...
在本文中,我们将深入探讨如何使用Java JSP技术与Microsoft SQL Server数据库进行交互,实现基本的CRUD(创建、读取、更新、删除)操作。这个项目非常适合初学者,因为其教程详细,易于理解。 首先,我们需要理解...
- **类与对象**:书中源码涵盖了面向对象编程的基础,包括类的定义、对象的创建与销毁、封装、继承和多态等概念。 - **数据类型与运算符**:涉及到各种基本数据类型(整型、浮点型、字符型、布尔型)的使用,以及...
在本例中,开发者通过百度网盘分享了QQ屏幕截图工具的相关资源,包括源代码、文档和视频教程。 #### 2. 使用指南 为了能够成功下载并使用这些资源,用户需要具备一定的基础知识和技术能力: - **基础技能**:熟悉...
JDBC驱动是Java程序员用来连接Oracle数据库的关键组件,它实现了Java标准接口,使得Java代码能够执行SQL语句和处理数据库结果。 在描述中提到了两个具体的驱动文件:ojdbc6.jar和ojdbc7.jar。ojdbc6.jar是专为JDK ...