1. 数据库表 req_seq
CREATE TABLE req_seq ( req_id VARCHAR2(36) PRIMARY KEY, seq VARCHAR2(100), req_xml CLOB, req_time DATE );
2. 实体类
import java.io.Serializable; import java.sql.Timestamp; import java.text.SimpleDateFormat; public class ReqSeqBean implements Serializable { /** * @Fields serialVersionUID : TODO */ private static final long serialVersionUID = -4200518336372141644L; // 主键 private String reqId; // 请求序列 private String req; // 请求XML private String reqXml; // 请求时间 private Timestamp reqTime; public String toString() { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); StringBuffer buf = new StringBuffer("ReqSeqBean:["); buf.append("reqId=").append(reqId).append(", "); buf.append("req=").append(req).append(", "); buf.append("reqXml=").append(reqXml).append(", "); buf.append("reqTime=").append(df.format(reqTime)); return buf.toString(); } // 省略 setter/getter }
注意: 数据库表中,REQ_XML 的类型是 CLOB,实体类中是 String
3. DAO层配置
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <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"/> </bean> <bean id="reqSeqDAO" class="com.dao.ReqSeqDAO"> <property name="jdbcTemplate" ref="jdbcTemplate" /> <property name="hisJdbcTemplate" ref="jdbcTemplate" /> <property name="lobHandler" ref="oracleLobHandler"/> </bean> </beans>
4. DAO
import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.support.AbstractLobCreatingPreparedStatementCallback; import org.springframework.jdbc.support.lob.LobCreator; import org.springframework.jdbc.support.lob.LobHandler; public class ReqSeqDAO extends BaseDao { private static final Logger log = LoggerFactory.getLogger(ReqSeqDAO.class); private LobHandler lobHandler; /** * @Title: addReqSeq * @deprecated: 如果字段REQ_XML是clob类型,则用此方法,但是需要oracle版本和jdk版本一致 * @param bean * @throws Exception * @author * @date 2013年10月23日 */ public void addReqSeq(final ReqSeqBean bean) throws Exception { StringBuffer sql = new StringBuffer(); sql.append("INSERT INTO REQ_SEQ(REQ_ID, SEQ, REQ_XML, REQ_TIME) "); sql.append("VALUES(SYS_GUID(), ?, ?, "); sql.append("TO_DATE(TO_CHAR(SYSDATE,'yyyy-MM-dd hh24:mi:ss'),'yyyy-MM-dd hh24:mi:ss'))"); getJdbcTemplate().execute(sql.toString(), new AbstractLobCreatingPreparedStatementCallback(lobHandler) { @Override protected void setValues(PreparedStatement ps, LobCreator lobCreator) throws SQLException, DataAccessException { ps.setString(1, bean.getReq()); lobCreator.setClobAsString(ps, 2, bean.getReqXml()); } }); } /** * @Title: queryReqSeqList * @deprecated: 按条件查找请求序列信息(如果字段REQ_XML是clob类型,则用此方法,但是需要oracle版本和jdk版本一致) * @param bean * 查询条件 * @return List * @throws Exception * @author * @date 2013年10月23日 */ public List<ReqSeqBean> queryReqSeqList(ReqSeqBean bean) throws Exception { StringBuffer sql = new StringBuffer( "SELECT * FROM REQ_SEQ WHERE 1 = 1 "); // 查询条件 List<String> params = new ArrayList<String>(1); if (null != bean) { /* 添加查询条件 */ if (null != bean.getReq()) { // 请求序列号 sql.append(" AND SEQ = ? "); params.add(bean.getReq()); } } sql.append(" ORDER BY REQ_TIME DESC"); final List<ReqSeqBean> list = new ArrayList<ReqSeqBean>(10); getJdbcTemplate().query(sql.toString(), params.toArray(), new RowMapper() { @Override public Object mapRow(ResultSet rs, int rowNum) throws SQLException { ReqSeqBean seq = new ReqSeqBean(); seq.setReqId(rs.getString("REQ_ID")); seq.setReq(rs.getString("SEQ")); seq.setReqXml(lobHandler.getClobAsString(rs, "REQ_XML")); seq.setReqTime(rs.getTimestamp("REQ_TIME")); list.add(seq); return seq; } }); return list; } public LobHandler getLobHandler() { return lobHandler; } public void setLobHandler(LobHandler lobHandler) { this.lobHandler = lobHandler; } }
相关推荐
spring 中对大数据的处理,包括clob,blob的数据。比之jdbc下简便很多。
strut2+spring+springjdbctemplate做的简易登录系统
使用Spring的JdbcTemplate实现分页功能
Druid数据库连接池的SpringJDBCTemplate所需的jar包,Druid数据库连接池的SpringJDBCTemplate所需的jar包,Druid数据库连接池的SpringJDBCTemplate所需的jar包,Druid数据库连接池的SpringJDBCTemplate所需的jar包,...
一个非常简单基于注解的Spring JdbcTemplate,供初学者参考用。
Spring JDBCTemplate连接池jar包
使用Spring的JdbcTemplate调用Oracle的存储过程
Spring JdbcTemplate调用Oracle存储过程输出游标结果集实现增删改查
模仿spring jdbcTemplate的粗略实现,只有很小的参考价值,如果是java初学者可以使用这个封装好的工具进行数据库操作,只需要在db.properties里配置好driver,url等信息
运用Spring中关于JDBC的一个辅助类(JDBC Template),进行curd操作
spring-jdbcTemplate实例工程
Spring JdbcTemplate的操作,包括接口,BaseDao,log4J配置文件,主要为oracle数据库操作,很多特殊方法只对oracle有效
spring JdbcTemplate query方法使用示例,欢迎下载借鉴
SpringJdbcTemplate封装工具包,包括规范model格式接口,封装SpringJdbcTemplate,实现分页,自适应多种数据库
1.Spring4前 spring-jdbc包是独立的,4以后spring-jdbc 就已经没有了
JdbcTemplate api 下载 Spring
本资源是一个完整的通过Servlet-Service-Dao-JdbcTemplate访问MySQL数据库的JavaWeb Project,可以直接导入到MyEclipse中进行调试运行,注意默认编译器是JDK1.6。
SSH笔记-Spring JdbcTemplate,使用JdbcTemplate对数据库进行操作,使用具名参数和JDBC模板,简化操作
使用Spring的JdbcTemplate和BeanPropertyRowMapper完成的JDBC我的实例 博文链接:https://zmx.iteye.com/blog/373454
spring jdbctemplate组件的简单实例。可以直接运行该实例来学习spring的jdbctemplate。处于初学者,或开发互联网性能要求较高的比较有料。