如果续1的方式不喜欢,这样或许你会喜欢 。
1、SQL语句符合sql92标准。
2、Java标准语法。
3、一个精简的ORM。根据数据库生成对等的JavaBean.数据库的类型与JavaBean的类型对应,校验可以通过标注的方式进行。
public procedure P_users_1001001(UserInfo info){
/**自定义对象。*/
DataGrid dg = new DataGrid();
sql.execute("insert es_system.users (user_code,user_name)"+
"values" +
" (:info.userCode,info.user_name) ";
sql.executeQuery("select * into :data from users where user_code=:info.getUser_code()");
return ProcedureUtil.createProcedure(0,"用户创建成功!!",dg);
}
结论:
经过一段时间的思考以及对所开发过项目的总结,最终下了结论,主要分两部份完成,在描述之前,先说明一下需要达到的目标:
1、跨数据库:即允许在多个数据库上运行。
2、可读性强:可读性强,入门的成本低,开发人员容易接受。
3、效率高:主要分两部份,开发的效率及运行的效率,在两都之间达到平衡。
4、即时运行:以脚本化的方式运行。
实现的方案如下:
1、将SQL92关键字对象化。
2、扩展SQL92标准,支持如:@等关键用法。
用例如下:
1、关键字对象化:
UserInfo是一个用户对象:主要属性有用户代码、用户名称、性别、年龄,部门id (外键)等。
Dep是一个部门对象:含部门的相关信息。
isNullNotCondition是一个自定函数,如果部门名称为空,不做为条件。
Select(UserInfo.class,"DEP_NAME") .from(UserInfo.class)
.innerJour(Dep.class)
.on("UserInfo.dep_id=Dep.dep_id");
.where()
.and("UserInfo.dep_id=:id")
.or(isNullNotCondition("Dep.dep_name=:name"));
动态SQL语句:
SQL = "select user_code,user_name,sex,age,dep_id,dep_name "+
" from UserInfo"+
" innerJour Dep "+
" on (user_info.dep_id=Dep.dep_id" +
" where userInfo.dep_id=:id"+
" @isNullNotCondition(and Dep.dep_name=:name)";
封装的集合如下:
1、创建临时表
2、Insert、Update、Delete、Select语句。
3、根据数据库生成Java对象,java对象与数据库一一对应该。
Command: INSERT
|
Description: Inserts new rows into a table
|
INSERT INTO table [ ( column [, ...] ) ]
{ VALUES ( expression [, ...] ) | SELECT query }
|
|
Command: UPDATE
|
Description: Replaces values of columns in a table
|
UPDATE table SET col = expression [,...]
[ FROM fromlist ]
[ WHERE condition ]
|
|
相关推荐
- **简化用户视图**: 存储过程不能直接简化用户视图。 - **减少网络流量**: 通过将复杂操作封装在服务器端执行,可以减少客户端与服务器间的交互次数。 - **实现安全控制**: 可以通过存储过程限制某些操作,实现安全...
小编的确一直都想把这方面的命令做个总结,这次辛苦老范给我们整理了这份实用的秘笈。 Bootcfg bootcfg 命令启动配置和故障恢复(对于大多数计算机,即 boot.ini 文件)。 含有下列参数的 bootcfg 命令仅在...
7. **C#中的索引器**:索引器允许对象像数组一样被索引。不仅可以使用数字,也可以使用任意类型作为索引,提供更灵活的访问方式。 8. **三层架构**:三层架构是一种常见的软件架构模式,将应用分为表现层(UI)、...
本方案基于使用数据库工具实现vCenter Server配置的备份及恢复,包括但不限于在同一台主机上的恢复以及跨主机的迁移。具体步骤如下: 1. **准备环境**: - **软件需求**: - VMware vCenter Server(至少两套,...
根据给定文件的标题“搜索引擎整理”及描述“一些对搜索引擎有帮助的概念,对于搜索引擎的编程有帮助”,我们可以深入探讨一系列关键知识点,包括搜索引擎的工作原理、网络爬虫技术、HTTP协议的理解、以及如何利用...
在数据库处理方面,不需要在数据层借助存储过程及数据库服务器端函数封装过多的业务逻辑,因此数据库系统采用相对精巧的MySQL[6]。 该在线博客系统服务器端如果需要布置到其他主机上,则该主机必备条件如下: 1. ...
v3.0可能支持MySQL或类似的数据库系统来存储网站数据。 8. **安全防护**:为保护网站免受攻击,系统可能包含了安全更新、防止SQL注入和跨站脚本等措施。 9. **多语言支持**:对于有国际化需求的用户,Duoxun! v...
- 缺点:不能灵活地响应紧急事件。 8. **周转时间 (Turnaround Time)** - 定义:一个进程从提交到第一次运行的时间。 - 计算公式:周转时间 = 完成时间 - 提交时间。 9. **等待时间 (Waiting Time)** - 定义:...
通过此工具,你可以将博客文章批量导出并转换成CHM(Microsoft HTML帮助文件)和PDF(便携式文档格式),这样不仅可以便于长期存储,还可以像真正的书籍一样阅读和分享。 该工具的核心功能包括: 1. **博客数据...
根据提供的文件信息,我们可以整理出以下相关知识点: ### 1. C# 访问修饰符详解 - **Private**: 私有访问修饰符,仅在声明它的类内部可访问。 - **Protected**: 受保护访问修饰符,允许在同一类、派生类中访问。 ...
根据提供的文件信息,我们可以整理出一系列与ASP.NET相关的面试知识点,并对这些知识点进行详细解析。 ### 1. 访问修饰符 - **private**: 私有访问修饰符,仅在声明它的类内部可见。 - **protected**: 受保护访问...
进入20世纪,尤其是信息时代的到来,知识管理逐渐成为一门学科,伴随着信息技术的发展,如数据库、互联网等,知识管理的媒介和技术也日益丰富,使得知识的获取、存储、分享和应用变得更加便捷。 #### 1.2 组织的...
5. **数据存储与同步**: 如果是云服务,可能涉及到数据库(如MongoDB)和API接口设计,以支持照片的存储和跨设备同步。 6. **用户界面设计**: 良好的照片管理工具需要直观的UI,便于用户浏览、筛选和编辑照片。 7. *...
1. **图形界面**:Bibi提供了一个跨平台的图形用户界面,支持Windows、Mac OS X和Linux等操作系统,使得用户可以像使用其他日常应用一样管理.bib文件。 2. **实时预览**:在Bibi中编辑条目时,可以实时查看LaTeX...