SQL语句自动生成封装---数据实体操作封装(二)
来源:互联网 发布:大数据交易中心 编辑:程序博客网 时间:2024/06/14 21:31
com.spkg.com插件下载地址:http://download.csdn.net/detail/ping802363/9834263
前面了解了封装数据库操作,现在了解下对SQL语句自动生成封装,平常的数据库业务项目中经常写SQL语句,增加、删除、修改、查询,常用的SQL语句构造方法都一致,常用的SQL语句与表名,列名有关,我们知道项目开发一般都会针对一张表建立一个数据实体模型,模型中的属性与数据库表中 的列名一一对应,试想如果能构建一个封装的插件,根据模型自动生成SQL的插入,删除,修改,查询语句,这样多节约开发时间。
本插件即com.spkg,com在SQLString中封装了生成SQL常用语句的功能,其中T是泛型,在条件查询中,key是搜索关键词,num每页显示的数量,page当前页码;最后用toString方法输出SQL语句。
/** * 根据实体以及实体内的注解形成插入的sql语句,列名需和属性名一致 * @param t 实体 * @return SQL语句 * @throws Exception */ public <T>void insertSQL(T t) throws Exception;/** * 根据实体以及实体内的注解形成更新的sql语句,列名需和属性名一致 * @param t 实体 * @return SQL语句 * @throws Exception */ public <T>void updateSQL(T t) throws Exception;/** * 根据实体以及实体内的注解形成删除的sql语句,列名需和属性名一致 * @param t 实体 * @return SQL语句 * @throws Exception */ public <T>void deleteSQL(T t) throws Exception;/** * 根据实体以及实体内的注解形成根据主键查询单条数据的sql语句,列名需和属性名一致 * @param t 实体 * @return SQL语句 * @throws Exception */ public <T>void selectSingleSQL(T t) throws Exception;/** * 生成字符串类型字段根据key值或条件查询SQL语句,仅限本表String类型,mysql可使用 * 生成条件查询语句,提供自定义单个对象PK查询,mysql可使用 * @param t * @param num * @param page * @throws Exception */ public <T>void searchSqlByCond(T t, Integer num, Integer page, String key) throws Exception;/** * 根据查询结果计数sql,mysql可使用 * @param t * @param key * @throws Exception */ public <T>void searchResultCount(T t, String key) throws Exception;使用过程中,我们还需要对实体模型进行注解,注解方式如下(一个实体模型例子):
package com.spkg.test;import java.util.Date;import com.spkg.annotation.db.FieldName;import com.spkg.annotation.db.PK;import com.spkg.annotation.db.TableName;@TableName("dt_managers")public class Manager {@PKprivate Integer jno;private String password;private String name;private Integer sex;private Date birth;private String position;@FieldName("bid")private Book book;public Book getBook() {return book;}//...其他get,set方法}其中,TableName是注明本模型所对应的表名,PK标注属性为主键,FieldName标注数据库对应列名的值是此属性类型中的哪个属性,这种属性类型在其类中需构建一个构造器,构造器的参数为FieldName标记的属性名对应属性。此外还提供了其他注解,Disregard:标记为在数据库操作中此属性被忽略,即数据库中没有与之对应的列,标记对象为属性;OrderBy:标记本模型对应的表执行查询语句时的排序方式,标记对象为类;Statics:标记此属性对应的列在插入数据时是固定的字符串,例如获取当前的时间属性,直接给属性标记@Statics("now()");UnWrite:标记属性为不写,即此属性不参与SQL语句的形成,有Type.YES插入更新都不写,Type.INSERT插入不写,Type.UPDATE更新不写。
注:本封装中使用了大量反射、注解、泛型,反射面对大量会影响项目的访问效率,平常作业的项目开发中因为不用在意效率所以关系不大,实际的项目中需要考虑。
0 0
- SQL语句自动生成封装---数据实体操作封装(二)
- 封装数据库操作---数据实体操作封装(一)
- ResultSet自动封装数据到实体对象
- sql 多表数据封装为一个实体对象
- 封装数据操纵语句
- 根据实体自动生成sql语句并且执行
- 根据实体自动生成sql语句并且执行
- 关于SQL语句的自动生成!(二)
- MVC封装(二)自动加载类
- 将数据字典自动生成sql语句
- codeTool代码自动生成工具(参数类sql数据增删改查语句,实体类,接口代码)
- 最原始的sql语句的数据封装
- sql语句生成实体类
- Mysql Q4M 队列操作封装(二)
- Struts2学习(二)数据封装机制
- 动态生成SQL语句,对数据操作
- 动态生成SQL语句,对数据操作
- 动态生成SQL语句,对数据操作
- [Leetcode] 132. Palindrome Partitioning II 解题报告
- webApp书城开发学习笔记
- Netty入门应用
- hdu1022(stack)
- SharedPreference的应用
- SQL语句自动生成封装---数据实体操作封装(二)
- Java开发代码性能优化总结
- hdu 5976 Detachment(逆元+贪心+数论+前缀和+二分 待整理)
- 种子填充算法的使用—计算机图形学
- 达内课程-流程控制语句(上)
- java实现注销登录的3种方式区别
- Anaconda下安装keras 配置(windows版本 GPU版)
- 装饰者模式
- JAVA常用API整理