oracle clob 增 改 查
来源:互联网 发布:安卓录屏直播软件 编辑:程序博客网 时间:2024/06/16 00:12
package com.dao.webSite;
// default package
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import javax.annotation.Resource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.PreparedStatementSetter;
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;
import org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor;
import org.springframework.stereotype.Repository;
import com.base.generic.GenericDao;
import com.model.webSite.ModelModel;
@Repository("modelDao")
public class ModelDao extends GenericDao {
private static final Log log = LogFactory.getLog(ModelDao.class);
@Resource(name="lobHandler")
private LobHandler lobHandler;
public boolean save(ModelModel transientInstance) {
try {
final ModelModel md = transientInstance;
String sql = " INSERT INTO "+ModelModel.tableName+"(id,userId,siteId,name,type,codeHeadLeft," +
"codeHeadRight,code,codeEdit,codeWeb,model,bgColor,style) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)";
super.execute( sql, new AbstractLobCreatingPreparedStatementCallback(lobHandler) {
protected void setValues(PreparedStatement ps, LobCreator lobCreator) throws SQLException ,DataAccessException{
ps.setLong(1, md.getId());
ps.setLong(2, md.getUserId());
ps.setLong(3, md.getSiteId());
ps.setString(4, md.getName());
ps.setString(5, md.getType());
ps.setString(6, md.getCodeHeadLeft());
ps.setString(7, md.getCodeHeadRight());
lobCreator.setClobAsString(ps, 8, md.getCode());
lobCreator.setClobAsString(ps, 9, md.getCodeEdit());
lobCreator.setClobAsString(ps, 10, md.getCodeWeb());
ps.setString(11, md.getModel());
ps.setString(12, md.getBgColor());
ps.setInt(13, md.getStyle());
}
});
} catch (Exception ex) {
log.error("save failed", ex);
ex.printStackTrace();
return false;
}
return true;
}
public boolean delete(long id) {
try {
super.delete("id", id, ModelModel.tableName);
} catch (Exception ex) {
log.error("delete failed", ex);
ex.printStackTrace();
return false;
}
return true;
}
public ModelModel findById(Long id) {
try {
String query = "select * from "+ModelModel.tableName +" where id="+ id;
List list = super.query(query, new ModelMapper());
if(list.size()>0){
return (ModelModel)list.get(0);
}else return new ModelModel();
} catch (Exception ex) {
log.error("findBySql failed", ex);
ex.printStackTrace();
return null;
}
}
public List findByProperty(String propertyName, Object value) {
try {
String query = "select * from "+ModelModel.tableName +" where "+ propertyName + "='" + value + "'";
return super.query(query, new ModelMapper());
} catch (Exception ex) {
log.error("findByProperty failed", ex);
ex.printStackTrace();
return null;
}
}
public boolean attachDirty(ModelModel instance) {
try {
if (super.searchById(new ModelModel(), "id", instance.getId(), ModelModel.tableName) == null) {
save(instance);
} else {
String sql = "update "+ModelModel.tableName+" set name=?,type=?,codeHeadLeft=?," +
"codeHeadRight=?,code=?,codeEdit=?,codeWeb=?,model=?,bgColor=?,style=? where id='"+ instance.getId() +"'";
final ModelModel md = instance;
super.update(sql, new PreparedStatementSetter(){
public void setValues(PreparedStatement ps) throws SQLException {
ps.setString(1, md.getName());
ps.setString(2, md.getType());
ps.setString(3, md.getCodeHeadLeft());
ps.setString(4, md.getCodeHeadRight());
lobHandler.getLobCreator().setClobAsString(ps, 5, md.getCode());
lobHandler.getLobCreator().setClobAsString(ps, 6, md.getCodeEdit());
lobHandler.getLobCreator().setClobAsString(ps, 7, md.getCodeWeb());
ps.setString(8, md.getModel());
ps.setString(9, md.getBgColor());
ps.setInt(10, md.getStyle());
}
});
}
} catch (Exception ex) {
log.error("attachDirty failed", ex);
ex.printStackTrace();
return false;
}
return true;
}
public List findBySql(String queryString) {
try {
String query = "select * from "+ModelModel.tableName +" where "+ queryString;
return super.query(query, new ModelMapper());
} catch (Exception ex) {
log.error("findBySql failed", ex);
ex.printStackTrace();
return null;
}
}
protected class ModelMapper implements RowMapper {
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
ModelModel modelMd = new ModelModel(false);
modelMd.setId(rs.getLong("ID"));
modelMd.setUserId(rs.getLong("USERID"));
modelMd.setSiteId(rs.getLong("SITEID"));
modelMd.setName(rs.getString("NAME"));
modelMd.setType(rs.getString("TYPE"));
modelMd.setCodeHeadLeft(rs.getString("CODEHEADLEFT"));
modelMd.setCodeHeadRight(rs.getString("CODEHEADRIGHT"));
modelMd.setCode(lobHandler.getClobAsString(rs, "code"));
modelMd.setCodeWeb(lobHandler.getClobAsString(rs, "codeWeb"));
modelMd.setCodeEdit(lobHandler.getClobAsString(rs, "codeEdit"));
modelMd.setModel(rs.getString("MODEL"));
modelMd.setBgColor(rs.getString("BGCOLOR"));
modelMd.setStyle(rs.getInt("STYLE"));
ModelModel.confirmValues(modelMd);
return modelMd;
}
}
}
<bean id="nativeJdbcExtractor"
class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"
lazy-init="true" />
<bean id="lobHandler"
class="org.springframework.jdbc.support.lob.OracleLobHandler"
lazy-init="true">
<property name="nativeJdbcExtractor" ref="nativeJdbcExtractor" />
</bean>
- oracle clob 增 改 查
- Mybatis之Oracle增删查改示例(含Date、Clob数据类型操作)
- Mybatis之Oracle增删查改示例(含Date、Clob数据类型操作)
- oracle 增删改查
- oracle 增删改查
- oracle--增删改查
- ORACLE增删改查
- Oracle增删改查
- Oracle增删改查
- 对oracle大对象(Blob,Clob)操作(增,删,改)的C#代码(一)
- 对oracle大对象(Blob,Clob)操作(增,删,改)的C#代码(二)
- 对oracle大对象(Blob,Clob)操作(增,删,改)的C#代码
- oracle 增删改查语句
- oracle增删改查操作
- oracle的增删改查
- oracle 之 增删改查
- Oracle增删改查训练
- oracle增删改查语法
- js学习二,所谓对象
- 使用java.net进行Android和服务器信息交互
- 解析三层架构(1)---为什么要分层?
- 安装eclipse插件出错的可能解决办法
- linux设备模型之bus,device,driver分析二
- oracle clob 增 改 查
- 跟我学Telerik公司的RadControls控件(二)
- 关于RTSP的理解和例子说明
- 转载: 关于使用Spring导致c3p0数据库死锁问题 zz
- 深入了解VC++编译器的使用
- 关于dojo 转
- 对JSP、JAVASCRIPT、SERVLET之间数据传递的总结
- 浏览器 cookie 限制
- iframe异步加载技术及性能