- 浏览: 43505 次
- 性别:
- 来自: 成都
最新评论
-
shnsvyu:
利用Hibernate 3 Interceptor生成审计日志 -
wunan1402:
public class Cache { priv ...
使用Comet4j实现消息推送 -
Mislhy:
Cache是要导入那个包??
使用Comet4j实现消息推送 -
wunan1402:
我来给他补充完整吧,我也是猜出来的CacheManager.j ...
使用Comet4j实现消息推送 -
abio1023:
少了CacheManager 类
使用Comet4j实现消息推送
文章列表
字符串是软件开发中最为重要的对象之一。通常,字符串对象或者其等价对象,在内存中总是占据了最大的空间块。因此如何高效地处理字符串,必将是提高系统整体性能的关键所在。
String对象及其特点
String对象是Java中重要的数据类型,它不是基础数据类型。在Java中,String对象可以认为是char数组的延伸和进一步封装。下图展示了Java中String类的基本实现,它主要由3部分组成:char数组、偏移量和String的长度。 char数组表示String的内容,它是String对象所表示的字符串的超集。String的真实内容还需要借助偏移量和长度在这个char数组中进行定位和截取。
...
MongoDB Shell
- 博客分类:
- database
MongoDB自带JS Shell,可在shell中使用命令行与MongoDB实例进行交互。接下来将介绍一些常用的命令。
1.运行shell
运行mongo启动shell:
D:\mongodb-win32-i386-2.4.9\bin>mongo
MongoDB shell version: 2.4.9
connecting to: test
启动时,shell将自动连接MongoDB服务器,须确保mongod已启动。
shell是一个功能完备的JS解释器,可运行任意JS程序。为说明这一点,我们可以运行几个简单的数学运算:
> x = 200
200
> x / 5 ...
在安装MySQL的过程中,在输入访问密码的界面里有一个单选项(截图附后),此单选项的意思就是是否允许远程访问root。如果没有勾选此项的话,MySQL默认在mysql.user表里会创建一条记录,该记录的user列值为root,host列值为localhost。
此时如果不是在安装MySQL数据库的本机访问MySQL(即远程访问),将会报错,错误提示信息如本博客标题所示范。
有两种方法可以解决此错误,但推荐如下方法。
授权法。授权的同时会创建一个用户。
如,你想通过test_user从任何主机连接到MySQL服务器,连接的同时需要使用sqlpass进行密码认证。
GRANT ALL ...
在使用Spring提供的JdbcTemplate中名为queryForObject API进行数据库查询时有时会抛出如下异常提示息,org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0 或者 org.springframework.dao.IncorrectResultSizeDataAccessException: Incorrect result size: expected 1, actual 2
在解决这些异常之前,我们首先来看看query ...
首先打开需要进行备份的数据库,使之被高亮选中。点击“Schedule”菜单,点击后将出现如下图所示的功能界面:
点击“New Batch Job”,点击后将出现如下图所示的功能界面:
“General”选项卡中显示了指定数据库连接下各个数据库实例中可供使用的JOB,鼠标左键双击可用的JOB,即可使之成为当前即将要创建的Schedule中的JOB,如下图所示:
点击“Save”,点击后会弹出一个名为"Profile Name"的对话框,在此对话框中可以给Schedule一个自定义的名称,名称键入完毕后,点击“OK”。具体操作如下图所示:
...
使用SpringMVC做文件上传,上传的文件需要持久化到数据库,数据库实现为MySQL 5.1。对于小于1M的文件没有发生任何异常,当上传的文件大于1M时会触发下面的异常。
com.mysql.jdbc.PacketTooBigException: Packet for query is too large (14865778 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.
通过在网上查阅相关资料后得知,MySQL LOB列在默认情况下允许的 ...
freemarker在解析数据格式的时候,默认自动将数字按3位进行分割,如1,000.这个问题给操作带来一定的额外处理复杂度.
解决方法有如下几种:
1.在模板中直接加.toString()将数字转化为字符串,如:${id.toString()};
2.在freemarker配置文件freemarker.properties添加number_format=#或者number_format=0;
3.在模板中直接加<#setting number_format="#">或者<#setting number_format="0">, ...
Comet4J(Comet for Java)是一个纯粹基于AJAX(XMLHTTPRequest)的服务器推送框架,消息以JSON方式传递,具备长轮询、长连接、自动选择三种工作模式。有关comet4j更多的信息在此不再详细展开,需要了解的请访问地址 http://code.google.com/p/comet4j/。
在项目中使用comet4j需要引入2个文件,comet4j.js、comet4j-tomcat6.jar。下面是一个示例,希望对需要的人有所帮助。不足之处还请大神谅解。
view:hello.jsp
<%@ page language="java" ...
通过字符串对象接收异常的堆栈信息
- 博客分类:
- java
PrintWriter pw = null;
ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream();
pw = new PrintWriter(byteOutputStream, true);
e.printStackTrace(pw);
String exMessage = byteOutputStream.toString();
利用lobHandler实现LOB列的查询
- 博客分类:
- spring
Spring提供的DefaultLobHandler可以用来对lob类型的数据列进行相关的操作。如以下代码所示,image_code列的数据类型为blob,下面的代码展示了一个查询示例。
public byte[] queryUserImage(String targetUserId) {
String sql = "SELECT image_code FROM pf_image WHERE user_id = ?";
final String BLOB_KEY = "BLOB";
@SuppressWarnings({ "un ...
/**
* 更新资源与菜单的关系
* @param operator
* @param menuId
* @param resourceIdList
*/
public void updateRelationshipWithMenu(final String operator, final String menuId, final List<String> resourceIdList) {
/*
* 清除操作资源与指定功能模块菜单的关系
* 1.去除关联关系
* 2.去除排序编号
* 3.更新最后修改人,最后修改时间
*/
...
在实际应用中,有可能需要审计对数据库中重要数据的更新历史。如:每当发生向T_USER表中插入或更新记录的事件时,就向审计日志表插入一条记录。
对于此种业务场景,可以采用数据库的触发器来生成审计日志,这种方法较为简便,并且有很好的性能,但是不支持跨数据库平台,缺乏灵活性。因此我们可以采用Hibernate 3以后提供的拦截器来实现相应的功能。当Session执行save()、update()、saveOrUpdate()、delete()以及flush()方法时,就会调用拦截器的相关方法,然后在这些方法中实现审计日志的业务逻辑。
用户定义的拦截器必须实现org.hibernate.Interc ...