我是靠谱客的博主 甜美画笔,最近开发中收集的这篇文章主要介绍Java约定俗成怎么定义_翻译:iBATIS 3.0 草案——约定俗成的配置方式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

约定俗成

Clinton说:这一点是与我们以前所坚持的原则不相符合的。认识我的人都知道我基本上算是一个完美的人。但是如果我们从最佳实践的角度去考虑,我们必须在解决复杂问题的时候也使用尽量简单的解决方案。当然,那些不太喜欢约定俗成式配置的人可以忽略这种配置方式。但是我相信这是非常有用的,特别是对插入、删除和更新操作来说。使用这种配置方式,一些简单的查询也将从中受益。

默认情况下,iBATIS 3.0将使用约定俗成式的配置方式。Java 5的方法语义中已经包含了生成SQL、进行参数和结果映射足够的信息。例如:

Employee getEmployee (int id);

这些信息对于生成以下SQL已经足够了:

SELECT id, firstName, lastName FROM Employee WHERE id = ?

结果类型与方法的返回值类型是一致的。因为方法的返回值类型不是集合类型,所以我们知道正在处理“Select One”语义。表的名称被假定为与结果类型的名称一致。而查询参数就被假定为方法对应的参数。在使用其他的配置方式的时候,我们可以更改默认ID参数的配置。SQL语句中的各数据列假定与方法返回类型的同名属性一一对应,当然这些配置都是可以更改的。

集合类型也是以同样的方式工作:

ListlistAllEmployees ();

这个例子将产生以下SQL语句:

SELECT id, firstName, lastName FROM Employee

我们可以将这个例子叫做“Select Many”,因为这个方法返回了一个集合类型。我们知道Where子句为空,因为这个方法没有任何参数。

如果我们想使用参数式查询,我们可以这样来做:

ListfindEmployeesLike(Employee employee);

假设只有参数的lastName,而其他引用类型都为null值,原始类型都被设置为非法无意义的值(比如-1),我们将得到以下的SQL语句:

SELECT id, firstName, lastName FROM Employee WHERE lastName = 'Begin'

或者可以直接按参数来进行:

ListfindEmployeeByLastNameAndFirstName (String last, String first);

这将生成以下的SQL语句:

SELECT id, firstName, lastName FROM Employee WHERE lastName = 'Begin' AND firstName = 'Clinton'

因为C#支持参数名称的反射,所以C#对这种方法提供了更好的支持。形式上也变得相对清晰,当然实质是一样的:

// C#

IListFindEmployeesLike(string lastName, string firstName);

// And in C# 3.0, we can use anonymous types:

IListFindEmployeesLike(object obj);

//...

IListemployees = mapper.FindEmployeesLike(new {LastName="Begin", FirstName="Clinton"});

更新操作也以相同的方式操作:

void insertEmployee (Employee emp);

void updateEmployee (Employee emp);

void deleteEmployee (Employee emp);

也可以自动接受集合参数:

int insertEmployee (Listemps); // returns rows inserted

int updateEmployee (Listemps); // returns rows updated

int deleteEmployee (Listemps); // returns rows deleted

生成器相当的灵活,而且可以为大多数删除甚至更新操作生成一条SQL语句。

最后

以上就是甜美画笔为你收集整理的Java约定俗成怎么定义_翻译:iBATIS 3.0 草案——约定俗成的配置方式的全部内容,希望文章能够帮你解决Java约定俗成怎么定义_翻译:iBATIS 3.0 草案——约定俗成的配置方式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部