分类‘编程代码’

Oracle中varchar2(* char)与varchar2(*)的区别

最近用到Hibernate自动建表,在用到String的时候,默认会创建varchar2类型字段,如:设置length=10,则创建后字段属性为varchar2(10 char),而非varchar2(10)。

由于之前没留意到这个,就网上查了一下,才知道原来基础都没记牢(也许一开始就没接触到,至少印象中一直使用的后者)。其实,这个这两种写法还真有点不一样之处,varchar2(10 char)表示10个字符,这个类型可以存储10个多字节字符的,如如10个汉字,而varchar2(10)实际上市varchar2(10 byte)的简写,表示两个字节,注意,前者是字符,这里是字节,就是说这个类型是不能存储10个多字节字符的。

偶然发现,总结下,以备忘。玩数据库比较少,熟手勿拍!

HTML5的自定义data属性及jQuery.data()方法的使用

做前端的人有的喜欢在HTML标签上添加自定义属性来存储和操作数据。但这样做的问题是,你不知道将来会不会有其它脚本把你的自定义属性给重置掉,此外,你这样做也会导致html语法上不符合Html规范,以及一些其它副作用。这就是为什么在HTML5规范里增加了一个自定义data属性,你可以拿它做很多有用的事情。

你可以去读一下HTML5的详细规范,但这个自定义data属性的用法非常的简单,就是你可以往HTML标签上添加任意以 "data-"开头的属性,这些属性页面上是不显示的,它不会影响到你的页面布局和风格,但它却是可读可写的。

下面的一个代码片段是一个有效的HTML5标记:

<div id="id" data-key="1">TO DO</div>

可是,怎么来读取这些数据呢?你当然可以遍历页面元素来读取你想要的属性,但jQuery已经内置了方法来操作这些属性。 查看更多...

使用Flash AIR创建桌面无提示打印应用示例

接上篇,同样的项目,又涉及打印,总结后也一并发出来吧,看到很多人在求无弹出框的打印方式,好不容易找到某位老手写的Simple,自己改改就用上了,效果还不错。

直接上代码,老样子,没有包名。 查看更多...

使用Flash AIR创建桌面无提示拍照应用示例

项目关系需要创建能够拍照的桌面应用,因为比起C++、C#,Flash略为熟悉,就采用了AIR。下面是今日来测试无误的结果。

因为项目中涉及其他内容,不想暴露拍照按钮给用户,所以预留了savePic方法供需要时调用。因为是AIR应用,可以直接操作本地文件,虽然功能有限,但单纯的保存图片还是够用的。下面即为调用方法直接保存图片的简单示例,不是采用网上多数的弹出保存框形式。时间关系,不多做介绍,仅记录,有不清楚的可以留言交流。 查看更多...

Java与Flex构建桌面程序的开发框架Smartinvoke

Java程序员,如果你想快速开发出像Flex那么炫丽的桌面程序,可以考虑使用smartinvoke, 因为它是一个使用Java做后台逻辑,Flex做界面的桌面程序开放框架。
它的优势在于:
1.使用Flex做界面,界面开发效率大大提高,界面很美观,自定义程度高。
2.Java做逻辑,Flex做展示,展示部分代码与业务逻辑代码截然分开。大大提高代码的可维护性。
3.Java与Flex相互调用非常简单,提高Java代码的可重用性。

Flex程序员,如果你正在为Adobe AIR的运行缓慢,内存泄漏,后台功能简单等问题困扰,你可以考虑使用 smartinvoke,因为它很好的解决了Adobe AIR的问题。smartinvoke为Flex程序构造了一个Java运行环境,这样 Flex就可以像调用本地as代码一样直接调用Java中的对象,以实现强大的功能。 查看更多...

使用Flash Builder创建Flex AIR桌面应用

创建 AIR 项目

Flash Builder 包括用于开发和打包 AIR 应用程序的工具。

通过定义一个新项目来开始在 Flash Builder 和 Flex Builder 中创建 AIR 应用程序,其方式与创建其他基于 Flex 的应用程序项目的方式相同。

  1. 打开 Flash Builder。
  2. 依次选择“文件”>“新建”>“Flex 项目”。
  3. 输入项目名称,例如 AIRHelloWorld。
  4. 在 Flex 中,AIR 应用程序被视为一种应用程序类型。有两种类型可供您选择:
    • 在 Adobe® Flash® Player 中运行的 Web 应用程序
    • 在 Adobe AIR 中运行的桌面应用程序 选择 Desktop 作为应用程序类型。
  5. 单击“完成”以创建此项目。

AIR 项目最初由两个文件组成:主 MXML 文件和应用程序 XML 文件(称为应用程序描述符文件)。 查看更多...

用Java发起HTTP请求与获取状态码(含状态码列表)

在使用Java请求Web程序比如访问WebService接口时,通常需要先判断访问URL的有效性,这里就Java发送HTTP请求的方式做简单记录,按照前辈们的说法,Java发HTTP请求,最常见的无非是两种,一种是用java.net.URLConnection,另一种则是大名鼎鼎的HttpClient。使用java.net.URLConnection比较麻烦,而HttpClient则比较简便。以发送POST请求为例

java.net.URLConnection方法如下:

private static void urlConnectionPost() {
    StringBuilder responseBuilder = null;
    BufferedReader reader = null;
    OutputStreamWriter wr = null;
    URL url;
    try {
        url = new URL("http://www.poorren.com");
        HttpURLConnection conn = (HttpURLConnection)url.openConnection();
        conn.setDoOutput(true);
        conn.setConnectTimeout(1000 * 5);
        wr = new OutputStreamWriter(conn.getOutputStream());
        wr.write("");
        wr.flush();
        // Get the response
        reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        responseBuilder = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            responseBuilder.append(line + "\n");
        }
        wr.close();
        reader.close();
        System.out.println(responseBuilder.toString());
    } catch (IOException e) {
        e.printStackTrace();
    }
}

查看更多...

Extjs 4.2 Grid增删改及后台交互(Java)

上次发了Easyui Datagrid的增删改查的使用学习记录后一直想整理下基于Extjs4.2的Grid学习使用记录。苦于抽不出时间,一直拖到现在。不得不说,Extjs确实很强大,新版的Neptune风格也很入我眼,但毕竟没怎么用过,第一次用,也不敢上来就搞什么自定义组件,也就纯粹的model+store+panel声明式创建表格了。

抛开分页,抛开排序,今天只简单讲一下最近使用中总结出来的rest形式增删改查数据的方式。发现这种方式挺不错的,故而分享下。
代码Example如下:
定义Model

Ext.define('Person', {
    extend: 'Ext.data.Model',
    fields: [{name: 'id',
        type: 'int',
        useNull: true
    }, 'email', 'first', 'last'],
    validations: [{ type: 'length',
        field: 'email',
        min: 1
    }, {type: 'length',
        field: 'first',
        min: 1
    }, {type: 'length',
        field: 'last',
        min: 1
    }]
});

查看更多...

Easyui Datagrid增删改及后台交互(java)

最近项目的特殊性可算是把我折腾得够呛,从最开始的整站JS,到现在的Liferay,且不说后台,单单前台框架就让我从Dojo到YUI又到AUI、jQuery、ExtJS,常用API翻了一遍,常见问题解决了一遍,而归根结底,为的就是一个方便好用、加载迅速的Grid控件。还好目前是定准用ExtJS了,不然常用控件都用一遍也没找到完全合适的,就困难了。题外话至此,下面开始正题。

刚刚看到同学在之前发的文章,在使用Easyui DataGrid时遇到新增行数据在保存时不能获取的问题,解决方法是在保存时先执行$('#example′).datagrid('acceptChanges');然后前台获取全部行,再拼装字符串传到后台,这样做是可以解决,但实际上Easyui Datagrid似乎有更好的API供调用。为了和我一样的新手少走弯路,故写此篇文章以便参考。 查看更多...