`
qiujiayu
  • 浏览: 173655 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在JDK 1.5中实现真正面向对象形式的SQL语句3 (含有源码,代码生成工具)

    博客分类:
  • JAVA
阅读更多

      之前我发表过两篇文章,与有今天发表的东西是有关联的,因为我今天发表的东西也是从之前那个方向发展过来的。虽然现在已经没有原来的模样了,但希望有兴趣的朋友能一起学习,并给点建议。
   在JDK 1.5中实现真正面向对象形式的SQL语句 1
   在JDK 1.5中实现真正面向对象形式的SQL语句 2(含有源码,代码生成工具)

 

  
   接下来讲一下今天主要内容。
   在我的开发经验告诉我,我们在一个系统开发过程中,使用最多的SQL语句,主要就是CURD的东 西,所以我们针对每张表,我们需要写的SQL语句也是比较固定的。当然我今天发表的这个东西并不是非常完美的,通过工具生成的代码大部分是可以直接使用 的,但有些地方还是要根据实际业务,做些简单的调整(即使是hibernate生成的配置文件,我们也要花大量的时间去维护它)。
    接下来说一下设计思想:
    1、使用enum 映射数据库表结构。比如:

  1.     public  static  enum TBL_ACTION{//enum 名称,就是数据库中的表名或者视图名
  2.         ACTION_ID,//数据库字段名
  3.         MODULE_ID,
  4.         ACTION_NAME,
  5.         ACTION_REMARK;
  6.     }


     通过它我们就很容易维护SQL语句了。如果以后表名,或字段名做了更改,我们就很容易找到我们代码中,哪些地方用到了这个表,维护起来非常的方便。而且我们手写SQL语句时,在IDE下会自动提示,这样可以减少我们书写错误。
     2、缓存 CURD SQL语句:

  1.     public  static  enum TBL_ACTION{
  2.         ACTION_ID,
  3.         MODULE_ID,
  4.         ACTION_NAME,
  5.         ACTION_REMARK;
  6.         private  static  final  String  tempStr=MODULE_ID+"," +ACTION_NAME+"," +ACTION_REMARK.toString();
  7.         public  static  final  String  selectSql="SELECT " +ACTION_ID+"," +tempStr+" FROM " +TBL_ACTION.class .getSimpleName()+" " ;
  8.         public  static  final  String  insertMySql="INSERT INTO " +TBL_ACTION.class .getSimpleName()+" (" +tempStr+") VALUES (?,?,?);SELECT LAST_INSERT_ID();" ;
  9.         public  static  final  String  insertOracle="INSERT INTO " +TBL_ACTION.class .getSimpleName()+" (" +ACTION_ID+"," +tempStr+") VALUES (?,?,?,?)" ;
  10.         public  static  final  String  deleteSql="DELETE FROM " +TBL_ACTION.class .getSimpleName()+"  WHERE " +ACTION_ID;
  11.         public  static  final  String  updateSql="UPDATE " +TBL_ACTION.class .getSimpleName()+" SET " +tempStr.replaceAll(",""=?," )+"=? WHERE " +ACTION_ID+"=?" ;
  12.     }


       3、 PreparedStatement.setObject(int index,Object obj);和 CallableStatement..setObject(int index,Object obj);为我们提供了很大的方便。在生成代码的DAO 中我们会看到大量的:

  1.             parms=new  Object []{
  2.                 ......
  3.             };
  4.             res =this .update(session, sql, parms);


       4、使用泛型抽取DAO:com.commons.dao.AbstractBaseDao<O>
       5、实现分页查询:

       
  1.     /**
  2.      * 分页查询
  3.      * @param session
  4.      * @param sql
  5.      * @param minIndex
  6.      * @param maxIndex
  7.      * @param parms
  8.      * @return
  9.      */
  10.     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
0
0
分享到:
评论

相关推荐

    在JDK 1.5中实现真正面向对象形式的SQL语句4 (含有源码,代码生成工具)

    在实现面向对象的SQL语句时,可以使用泛型来确保操作的数据类型正确。例如,我们可以创建一个泛型类来构建SQL条件: ```java public class SqlCondition&lt;T&gt; { private SqlOperator operator; private T value; ...

    JDK1.5 for Mac OS

    在压缩包文件的文件名称列表中,我们看到的".SQL"文件通常包含SQL语句,可能是数据库的脚本文件,用于创建或修改数据库的对象,如表(tablas.SQL)、包(packagebody.SQL和package.SQL)、过程(procedure.SQL)、...

    jdk1.6源码包

    - **面向对象设计**:Java是一种典型的面向对象语言,源码展示了如何设计和实现复杂的类和接口。 - **异常处理**:源码中广泛使用了异常处理机制,有助于理解何时和如何使用try-catch-finally语句。 - **多线程编程*...

    代码自动生成工具 hibernate配置文件工具 MagicalTools

    此外,MagicalTools不仅仅是一个代码生成工具,它还可以帮助进行数据库管理,如查看数据库结构、执行SQL语句,甚至进行数据导入导出,为开发者提供了一站式的开发辅助。 总之,MagicalTools是一款强大的代码自动...

    jdk 7 源码

    在JDK 7中,javax.sql提供数据库连接池的支持,javax.print则处理打印任务,javax.imageio用于图像I/O操作,这些都是Java应用程序常用的功能。 2. **com**:这是一个通用的顶级包,通常用于存放公司或组织的代码。...

    springboot+mybatis+jdk1.7

    标题 "springboot+...开发者可以通过这个项目模板快速开始业务逻辑的实现,同时利用代码生成工具提高开发效率。尽管JDK 1.7已过时,但对于学习和理解Spring Boot和MyBatis的集成工作流程来说,仍是一个不错的起点。

    J2EE源代码 电子科技大学考试系统 jsp+servlet+sql2005源代码

    《J2EE技术在电子科技大学考试系统中的应用——基于jsp、servlet与sql2005的源码解析》 J2EE(Java 2 Platform, Enterprise Edition)是Java平台上用于构建企业级分布式应用程序的标准框架,它包含了丰富的组件和...

    JDK7源码(JDK7u7_src.zip)

    3. switch语句支持字符串:在JDK7之前,switch只能用于常量和枚举,JDK7将其扩展到支持字符串,提高了代码的可读性和灵活性。 4. 多 catch 块:允许在一个catch块中捕获多种异常,简化了异常处理代码。 5. 文件...

    spring+mybatis企业应用实战项目源码(源码+sql)

    2. **Mybatis**:Mybatis是一个轻量级的持久层框架,它简化了数据库操作,将SQL语句与Java代码解耦。在项目中,Mybatis作为数据访问层(DAO),允许开发者编写定制化的SQL,控制参数绑定和结果映射,提供了更灵活的...

    jdk源码学习

    7. **编译器(Javac)**:JDK源码中包含了Javac编译器,它将Java源代码编译成字节码。通过查看`com.sun.tools.javac`包,我们可以学习到编译器的工作原理。 8. **JDBC(Java Database Connectivity)**:Java的...

    JSP+SQL网上书店设计(源代码+论文)

    在这个项目中,开发者利用JSP的动态网页生成能力与SQL的强大数据处理功能,为用户提供了一个完整的购书流程,包括浏览、搜索、购买和支付等步骤。 **JSP技术** JSP是Java平台上的一个重要组成部分,它允许开发者将...

    《java JDK 实例开发宝典》源码

    《Java JDK实例开发宝典》源码是一份涵盖了Java编程语言和JDK(Java Development Kit)广泛使用领域的宝贵资源。这份源码集合旨在为开发者提供深入理解Java API、类库和核心概念的实际示例,帮助他们在实践中提升...

    mybatis-3.0.5 源码

    7. **Mapper 代理**:MyBatis 使用 JDK 动态代理或者 CGLIB 生成 Mapper 接口的代理对象,使得在调用接口方法时,实际上执行的是已映射好的 SQL 语句。 8. **事务管理**:MyBatis 支持手动和自动的事务管理,通过 ...

    jdk15.0.2.zip

    1. **Switch Expressions增强**:在JDK 15中,switch语句被扩展为switch表达式,这使得代码更加简洁且易于理解。现在,可以在一个表达式中使用switch,返回一个值,而不仅仅是控制流程。 2. **文本块(Text Blocks...

    Java-JDK数据库系统开发Web开发源码

    在IT行业中,Java和JDK是两个至关重要的概念,它们是构建强大且高效软件系统的基础。本教程"Java-JDK数据库系统开发Web开发源码"旨在深入探讨如何使用Java编程语言和Java Development Kit (JDK)进行Web开发,特别是...

    jsp连接SQLserver数据库实现增删改查.这是一个完整的项目

    在本文中,我们将深入探讨如何使用Java JSP技术与Microsoft SQL Server数据库进行交互,实现基本的CRUD(创建、读取、更新、删除)操作。这个项目非常适合初学者,因为其教程详细,易于理解。 首先,我们需要理解...

    Java JDK实例宝典(夏先波著)书的所有源代码

    - **类与对象**:书中源码涵盖了面向对象编程的基础,包括类的定义、对象的创建与销毁、封装、继承和多态等概念。 - **数据类型与运算符**:涉及到各种基本数据类型(整型、浮点型、字符型、布尔型)的使用,以及...

    JavaEE源码QQ屏幕截图源码数据库sql文档

    在本例中,开发者通过百度网盘分享了QQ屏幕截图工具的相关资源,包括源代码、文档和视频教程。 #### 2. 使用指南 为了能够成功下载并使用这些资源,用户需要具备一定的基础知识和技术能力: - **基础技能**:熟悉...

    oracle最新驱动适用于jdk1.6和jdk1.7以上

    JDBC驱动是Java程序员用来连接Oracle数据库的关键组件,它实现了Java标准接口,使得Java代码能够执行SQL语句和处理数据库结果。 在描述中提到了两个具体的驱动文件:ojdbc6.jar和ojdbc7.jar。ojdbc6.jar是专为JDK ...

Global site tag (gtag.js) - Google Analytics