通过ibatis的blob 存储java的hashmap
这几天测试blob获取和存储的时候,被卡了很久,最后才发现是占用了关键字导致无法获取结果,血的教训啊.
以后起名字要用最恶心的,不要用最方便的了.闲话少说,java的hashmap是不能直接存储到数据库中的.
本地数据库为mysql,里面有blob的类型可供使用.方法也很简单,上代码
数据库建表
CREATE TABLE `test` (
`id` varchar(32) NOT NULL,
`fieldarr` blob,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Java类
public class Test implements Serializable{
private String id;
private byte[] fields;
public String getId(){
return id;
}
public void setId(String id){
this.id = id;
}
public byte[] getFields(){
return fields;
}
public void setFields(byte[] fields){
this.fields = fields;
}
}
然后配置ibatis
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="Test">
<!-- Use type aliases to avoid typing the full classname every time. -->
<typeAlias alias="Test" type="bruce.Test"/>
<resultMap id="FieldResult" class="Test">
<result property="id" column="ID"/>
<result property="fields" column="FIELDARR" jdbcType="BLOB" />
</resultMap>
<select id="selectTestByid" parameterClass="string" resultMap="FieldResult">
<!--[CDATA[
select * from test
where ID = #value#
]]>
</select>
<update id="updateTest" parameterClass="Test">
<![CDATA[
update test set
FIELDARR = #fields#
where
ID = #id#
]]-->
</update>
</sqlMap>
dao正常写就可以
public List<Test> selectTestByid(String id) throws SQLException {
相关文档:
1、 Web.xml
1) 配置hibernate
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dbConnectionContext.xml /WEB-INF/serviceContext.xml</param-value> ......
事件源负责产生事件
事件类:定义事件的特征;
监听器接口:定义监听器应该实现的功能;
监听器:实现监听器接口,监听事件的发生并作出响应;
所有的事件类必须继承Java事件基类,即java.util.EventObject;EventObject(Object source)是EventObject唯一的构造方法,这意味着所有事件必须在实例化时就指定事件源 ......
java中的事件机制的参与者有3种角色:
1.event object:就是事件产生时具体的“事件”,用于listener的相应的方法之中,作为参数,一般存在与listerner的方法之中
2.event source:具体的接受事件的实体,比如说,你点击一个button,那么button就是event source,这样你必须使button对某些事件进行相应,你就需 ......
java访问。net的webservice 而且 返回值是一个类,这玩意折磨我一天,出现过一系列的问题,
包括 没有定义SoapAction 不能序列化类等等。 最后还是服务提供商给了个demo,解决了 ,原因是我返回自定义类的一个变量没有get函数,可耻啊。而且demo里的代码 我想也是用wsdd2java生成的,我以前也看到过这种模式的实现,看着费 ......
Java 多线程编程之三:synchronized 关键字的使用
带有 synchronized 关键字的方法代表这个方法加锁。恰当而又灵活地运用 synchronized 关键字,是多线程编程的必修课。
1、synchronized关键字的作用域有二种:
1)是某个对象实例内,synchronized aMethod(){}可以防止多 ......