扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:陈雄华 来源:Impress Watch中文站 2007年10月13日
关键字:
在本页阅读全文(共5页)
package com.baobaotao.dao.jdbc;
…
import java.sql.PreparedStatement;
import java.sql.SQLException;
import org.springframework.jdbc.core.support.AbstractLobCreatingPreparedStatementCallback;
import org.springframework.jdbc.support.lob.LobCreator;
import org.springframework.jdbc.support.lob.LobHandler;
public class PostJdbcDao extends JdbcDaoSupport implements PostDao {
private LobHandler lobHandler; ① 定义 LobHandler 属性
public LobHandler getLobHandler() {
return lobHandler;
}
public void setLobHandler(LobHandler lobHandler) {
this.lobHandler = lobHandler;
}
public void addPost(final Post post) {
String sql = " INSERT INTO t_post(post_id,user_id,post_text,post_attach)"
+ " VALUES(?,?,?,?)";
getJdbcTemplate().execute(sql,
new AbstractLobCreatingPreparedStatementCallback(this.lobHandler) { ②
protected void setValues(PreparedStatement ps,LobCreator lobCreator)
throws SQLException {
ps.setInt(1, 1);
ps.setInt(2, post.getUserId());
③ 设置 CLOB 字段
lobCreator.setClobAsString(ps, 3, post.getPostText());
④ 设置 BLOB 字段
lobCreator.setBlobAsBytes(ps, 4, post.getPostAttach());
}
});
}
…
}
|
… <bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor" lazy-init="true"/> <bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true"> <property name="nativeJdbcExtractor" ref="nativeJdbcExtractor"/> ① 设置本地 Jdbc 对象抽取器 </bean> <bean id="postDao" class="com.baobaotao.dao.jdbc.PostJdbcDao"> <property name="lobHandler" ref="oracleLobHandler"/> ② 设置 LOB 处理器 </bean> |
<bean id="defaultLobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler" lazy-init="true"/> <bean id="postDao" class="com.baobaotao.dao.jdbc.PostJdbcDao"> <property name="lobHandler" ref=" defaultLobHandler"/> <property name="jdbcTemplate" ref="jdbcTemplate" /> </bean> |
package com.baobaotao.dao.jdbc;
import org.springframework.core.io.ClassPathResource;
import org.springframework.test.AbstractDependencyInjectionSpringContextTests;
import org.springframework.util.FileCopyUtils;
import com.baobaotao.dao.PostDao;
import com.baobaotao.domain.Post;
public class TestPostJdbcDaoextends AbstractDependencyInjectionSpringContextTests {
private PostDao postDao;
public void setPostDao(PostDao postDao) {
this.postDao = postDao;
}
protected String[] getConfigLocations() {
return new String[]{"classpath:applicationContext.xml"};
}
public void testAddPost() throws Throwable{
Post post = new Post();
post.setPostId(1);
post.setUserId(2);
ClassPathResource res = new ClassPathResource("temp.jpg"); ① 获取图片资源
byte[] mockImg = FileCopyUtils.copyToByteArray(res.getFile()); ② 读取图片文件的数据
post.setPostAttach(mockImg);
post.setPostText("测试帖子的内容");
postDao.addPost(post);
}
}
|
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。