双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

仅可以为插入long列的long值赋值

plusjava plusjava 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
软件环境:
数据库,oracle 9i,用的驱动是10g 的,
spring+jdbc

public class BaseDaoJdbc extends JdbcDaoSupport implements IBaseDao {

public boolean toAdd(String tabName, Map m) {

try {

StringBuffer sbFieldPart = new StringBuffer(0);

StringBuffer sbValuePart = new StringBuffer(0);

Set s = m.keySet();

Iterator it = s.iterator();

// 设置 Set 部分
int i = 0;
while (it.hasNext()) {
String key = (String) it.next();
if (key != null) {
if (i != 0) {
sbFieldPart.append(",");
sbValuePart.append(",");
}
sbFieldPart.append(key);
sbValuePart.append("? ");

i++;
}
}

Object[] obj = new Object[i];

StringBuffer sb = new StringBuffer();
sb.append("insert into ").append(tabName).append("(").append(
sbFieldPart.toString()).append(") values ( ").append(
sbValuePart.toString()).append(")");

if (log.isInfoEnabled()) {

log.info("增加sql 语句: " + sb.toString());
}

it = s.iterator();
i = 0;

while (it.hasNext()) {
String key = (String) it.next();
// if ( (key != null) && (key.equalsIgnoreCase(locName))) {
if (key != null) {

obj[i] = m.get(key);
i++;

}
}



final Object []psobj=obj;
PreparedStatementSetter ps=new PreparedStatementSetter(){

public void setValues(PreparedStatement arg0) throws SQLException {

for(int i=0;i<psobj.length;i++){

if (psobj[i] instanceof Date) {
arg0.setTimestamp(i+1,new java.sql.Timestamp( ( (java.util.Date) psobj[i]).getTime()));

} else {
arg0.setString(i+1, psobj[i].toString());
}

}


}

};

getJdbcTemplate().update(sb.toString(),ps);



return true;

} catch (Exception e) {

log.error("增加记录出错: " + e.toString());
}

return false;
}
配置文件:
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>

<bean id="iBaseDao" class="org.zjecredit.common.dao.BaseDaoJdbc">
<property name="jdbcTemplate">
<ref bean="jdbcTemplate" />
</property>
</bean>

错误提示信息:
经常会报
仅可以为插入long列的long值赋值 数据库里面是clob类型的
form提交的时候,这个字段是String类型的,用的是setString方法,
你的分析:
用10g的驱动不是可以当string处理的?
配置文件:
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>

<bean id="iBaseDao" class="org.zjecredit.common.dao.BaseDaoJdbc">
<property name="jdbcTemplate">
<ref bean="jdbcTemplate" />
</property>
</bean>

错误提示信息:
经常会报
仅可以为插入long列的long值赋值 数据库里面是clob类型的
form提交的时候,这个字段是String类型的,用的是arg0.setString(i+1, psobj[i].toString());
因为这个增加的方法是共用的,存数据的时候类似于
m.put("vcCNID", name);
m.put("vcCNCID", cf.getPid());
m.put("vcTitle", cf.getTitle().trim());
m.put("clContent",cf.getContent1().trim());
m.put("vcSource", cf.getSource().trim());
m.put("dtDate", new Date());
m.put("vcplace",cf.getPlace());
m.put("isImg",cf.getIsimg());
m.put("cstate",cf.getState());

用ps.setClob又不知道哪个是clob类型的

用10g的驱动不是可以当string处理的?
...全文

相关推荐

ORA-01461 仅可以为插入 LONG 列的 LONG 值赋值”解决办法

“ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值”

huang404

Oracle_11g_JDBC_ojdbc6.rar

ORA-01461 仅可以为插入 LONG 列的 LONG 值赋值”解决办法,jar包冲突,解决办法。

YIGE_YIGE

sqlserver 不能将值NULL插入列id(列不允许有空值解决)

错误现象:  Microsoft OLE DB Provider for SQL Server 错误 ‘80040e2f’不能将值 NULL 插入列 ‘id’,表 ‘web.dbo.dingdan’;列不允许有空值。INSERT 失败。 /Untitled-2.asp,行 115 原因分析: SQL数据库中,建立表时没有将id列标识规范设置为“是”。所以大家在创建表的时候一定将id设为自动增加id,标识之类的。 解决办法: 点击表,修改,设置id列标识规范为“是”,如下图。 您可能感兴趣的文章:SqlServer下通过XML拆分字符串的方

weixin_38666230

Pandas DataFrame数据的更改、插入新增的列和行的方法

主要介绍了Pandas DataFrame数据的更改、插入新增的列和行的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

weixin_38692162

SQL获取刚插入的记录的自动增长列ID的值

假设表结构如下: CREATE TABLE TestTable ( id int identity, CreatedDate datetime )   SQL2005获得新增行的自动增长列的语句如下:   insert into TestTable (CreatedDate)  output  inserted.id  values (getdate())   SQL2000获得新增行的自动增长列的语句如下:   insert into TestTable (CreatedDate)  values (getdate())   select @@IDENTITY   在C

weixin_38553478
评论 1
收藏 已收藏
分享
返回顶部
plusjava
Java EE 67,535 成员 225,843 内容