问题描述
- jdbc 从数据库一张表中查询得到一个值,插入到另一张表中,插入不进去
-
jdbc 从数据库一张表中查询得到一个值,插入到另一张表中,插入不进去,代码如下:
public void addObjectFields(Company c)throws SQLException{
Connection conn=DBUtil.getConnection();Statement stmt = conn.createStatement();
String insertSql = " insert into cdpt_object_fields"+
"( object_id,object_name,object_type,field_id,field_auto_id,field_name,field_type,field_level)"+" values("+ "?,?,?,?,?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(insertSql);String querySql = "select company_id from cdpt_company_info where cdpt_company_info.company_name= c.getCompany_name()";
ResultSet rs = stmt.executeQuery(querySql);
while (rs.next()) {
ps.setInt(1, rs.getInt("company_name"));}
ps.setString(2, c.getCompany_name());
ps.setInt(3, 0);
ps.setString(4, c.getIndustry_id());
ps.setInt(5, c.getField_autoid());
ps.setString(6, c.getIndustry_name());
ps.setInt(7, 0);
ps.setString(8, "0");
ps.execute();}
解决方案
数据库将一张表插入另一张表中
数据库中把数据从一个表中插入到另一张表中
Oracle数据库中把一个查询结果插入到一张表中
----------------------
解决方案二:
检查值是否符合另一张表的规范
检查你是否有另一张表的写权限
解决方案三:
你确定在你做查询sql的时候,传过去那个Company 对象里面的getCompany_name()属性值有值吗?
解决方案四:
String insertSql = " insert into cdpt_object_fields"+
"( object_id,object_name,object_type,field_id,field_auto_id,field_name,field_type,field_level)"+
" values("+ "?,?,?,?,?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(insertSql);
ps.setInt(1, 0);
ps.setString(2, c.getCompany_name());
ps.setInt(3, 0);
ps.setString(4, c.getIndustry_id());
ps.setInt(5, c.getField_autoid());
ps.setString(6, c.getIndustry_name());
ps.setInt(7, 0);
ps.setString(8, "0");
ps.execute(); 以前这样做的时候能插入进去,现在想从另外一张表获取company_id插入不进去
解决方案五:
先看要插入得表是否有对应的字段
然后看是否有读写的权限
最后看传参是否对应
解决方案六:
你应该把报错拿出来看看啊,调试,无非就是1,数据库连接。2,字段的问题。3,权限的问题;
解决方案七:
你可以自己调错的,错误原因无非也就是几个:一是数据库的连接有问题,二是权限的问题,三就是字段的的问题,还有一个就是你代码的问题了,把你
要存的值打印出来,看看取到值没有
解决方案八:
打个断点,确定是否真查出来了
然后看看插入前的数据是否符合要求,如长度、类型。非空等
你看看这个图片 id放错值了