InSync01:查找联系人

一、运行DEMO:
1、运行程序:http://localhost:8400/spring-flex-testdrive/insync01/index.html;
2、单击Search按钮,从数据库获取所有的联系人。
3、在Search文本框输入几个字符,单击“Search”按钮,按名字来查找联系人。

二、理解代码:
1、insync01.mxml文件:
定义远程对象,

<s:RemoteObject id="ro" destination="contactService" endpoint="http://localhost:8400/spring-flex-testdrive/messagebroker/amf"/>
Search的单击事件处理代码是:ro.findByName(searchStr.text)

2、配置文件

flex-servlet.xml :
<flex:remoting-destination ref="contactService" />
app-config.xml :
<bean id="contactService" class="org.springframework.flex.samples.contact.ContactDAO">
    <constructor-arg ref="dataSource" />
</bean>

3、org/springframework/flex/samples/contact/ContactDAO.java
构造函数实例化template(用于查找、更新、删除操作)和insertContact(用于插入操作)。
public ContactDAO(DataSource dataSource) {
        this.template = new SimpleJdbcTemplate(dataSource);
        this.insertContact = new SimpleJdbcInsert(dataSource).withTableName("CONTACT").usingGeneratedKeyColumns("ID");
    }

按名称查找联系人的方法。

public List<Contact> findByName(String name) {
        return this.template.query("SELECT * FROM contact WHERE UPPER(CONCAT(first_name, ' ', last_name)) LIKE ? ORDER BY first_name, last_name",
            this.rowMapper, "%" + name.toUpperCase() + "%");
    }

4、SimpleJdbcTemplate:

Spring的SimpleJdbcTemplate封装了常用的Jdbc操作,其中一个很方便的用法是在query查询数据库之后可以在ResultSet结果集中进行迭代,将结果集中的行转换为java对象。

SimpleJdbcTemplate的query方法格式如:

query(String sql, ParameterizedRowMapper<T> rm, SqlParameterSource args) 。

为了使用泛型简化操作,定义了Contact类,用于在数据库中返回值时进行数据行与JAVA对类的转换。

private final RowMapper<Contact> rowMapper = new ParameterizedRowMapper<Contact>() {

public Contact mapRow(ResultSet rs, int rowNum) throws SQLException {
            Contact contact = new Contact();
            contact.setId(rs.getInt("id"));
            contact.setFirstName(rs.getString("first_name"));
            contact.setLastName(rs.getString("last_name"));
            contact.setAddress(rs.getString("address"));
            contact.setCity(rs.getString("city"));
            contact.setState(rs.getString("state"));
            contact.setZip(rs.getString("zip"));
            contact.setPhone(rs.getString("phone"));
            contact.setEmail(rs.getString("email"));
            return contact;
        }
    };

三、小结:

这个例子显示了一个查询操作,从Flex到在DAO中使用Spring提供的JDBC API来操作数据库。这个例子展示的架构中的主要过程简化为:RemoteObject->flex:remoting-destination->Spring bean->Spring JdbcTemplate->H2 DB

来自:http://blog.sina.com.cn/s/blog_67532f7c0100oo7t.html

案例学习BlazeDS+Spring之三InSync01查找联系人相关推荐

  1. 案例学习BlazeDS+Spring之七InSync05新增联系人

    InSync05:新增联系人 一.运行DEMO: 1.运行程序:http://localhost:8400/spring-flex-testdrive/insync05/index.html: 2.单 ...

  2. 案例学习BlazeDS+Spring之六InSync04打开多个联系人

    InSync04:打开多个联系人 一.运行DEMO: 1.运行程序:http://localhost:8400/spring-flex-testdrive/insync04/index.html: 2 ...

  3. 案例学习BlazeDS+Spring之一(

    BlazeDS4的一个亮点就是与Spring的集成,这大大简化了与FLASH与JEE的集成开发.通过理解BlazeDS4附带的那些精湛的小DEMO,可以很快速的掌握这门技术.虽然案例学习这种方式不太利 ...

  4. 案例学习BlazeDS+Spring之五InSync03强类型

    InSync03:强类型 一.运行DEMO: 1.运行程序:http://localhost:8400/spring-flex-testdrive/insync03/index.html: 2.单击S ...

  5. 案例学习BlazeDS+Spring之二Spring BlazeDS Integration 101

    Spring BlazeDS Integration 101 这展示BlazeDS+Spring最基本的DEMO. 一.运行DEMO: 1.运行应用程序,URL:http://localhost:84 ...

  6. 案例学习BlazeDS+Spring之八InSync06“松耦合”UI同步事件通知

    InSync06:增加"松耦合"UI同步事件通知 一.运行DEMO: 1.运行程序:http://localhost:8400/spring-flex-testdrive/insy ...

  7. 案例学习BlazeDS+Spring之九Company Manager

    Company Manager 该DEMO与InSync是类似的,提供公司信息的CRUD操作.但CompanyManager使用注释来进行定义.也展示了对象关联(CompanyDAO类与Industr ...

  8. 案例学习BlazeDS+Spring之十一:Simple Data Push

    Simple Data Push 这个简单的数据推送服务demo演示了如何使用消息服务,将数据从服务端推送到客户端.在服务端,一个JAVA组件发布一个模拟真实的值给订阅了此消息目标的FLEX客户端.这 ...

  9. 案例学习BlazeDS+Spring之四InSync02使用RemoteObject事件

    InSync02:使用RemoteObject事件 一.运行DEMO: 1.运行程序:http://localhost:8400/spring-flex-testdrive/insync02/inde ...

最新文章

  1. sinatra 基本用法
  2. [转载] 中华典故故事(孙刚)——07 二百五
  3. Python读取文本的三种方式对比
  4. Silverlight 解谜游戏 之十四 音效
  5. 使用openssl生成双向加密证书(转)
  6. 常用电子接口大全,遇到不认识的,就翻出来对照辨认!
  7. 深入理解Spring Redis的使用 (五)、常见问题汇总
  8. Python魔法方法(magic method)细解几个常用魔法方法(下)
  9. ext4 关闭延迟分配
  10. gulp启动项目报错
  11. sql表达式_SQL表达式
  12. Atitit osi tcp ip 对应attilax总结
  13. 去年的今天我们举行了婚礼
  14. 移动通信学习笔记03_蜂窝原理
  15. java word搜索_java 实现word 文档的在线编辑. 以及全文关键字搜索和高亮显示
  16. KM算法实现带权匹配C#版本和C++两个版本实现O^3
  17. ASP.Net MVC开发基础学习笔记(9):查看详情、编辑数据、删除数据
  18. Java 后台做图片压缩的两种方法
  19. 解决steamcommunity报错443/80端口被占用
  20. Eclipes和Myeclipse插件安装方法

热门文章

  1. sql server 加密_SQL Server 2016中的新功能–始终加密
  2. Flask详解(上篇)
  3. HttpRunnerManager(一)--安装
  4. Unity教程之-Unity Attribute的使用总结
  5. cjson源代码解读 (一)介绍
  6. 简谈java的split
  7. Ajax基础--创建XMLHttpRequest对象
  8. 如何把一个数据库的数据copy到另外一个数据库
  9. 使用C#创建一个简单的Windows服务
  10. WPF Page close