String sql="insert into text (id,name,zt,year) values(?,?,?,?)";
jdbcTamplate.update(sql,id,name,'1',year);  这句执行出错,无效列类型
以上几个属性都是varcharOracle执行
String sql="insert into text (id,name,zt,year) values(‘111’,‘name’,‘1’,year)";
没问题最后用的
String sql="insert into text (id,name,zt,year) values(‘ “+id+” ’,' "+name+" ','1','2018')";
jdbcTamplate.update(sql); 
执行没问题感觉很奇怪,请大神解答

解决方案 »

  1.   

    jdbcTamplate.update(sql,id,name,'1',year);    里面这个  单引号是不是有问题?Java里面字符串是双引号吧?
      

  2.   

    这应该是个char行,。换成“1”试试
      

  3.   

    是啊,是不是JAVA把‘1’当作char类型了。
      

  4.   

    add或者insert吧
      

  5.   

    你将参数放在一个数组里试试
    JdbcTemplate().update(String sql,Object[] o)
      

  6.   

    你拼的那个语句不对。
    应该都是单引号才可以。
    7楼的图很明显了。sql语句成了两个字符串加一个变量。而且还包含着中文的双引号