我有两个表1.users表(列:branch_id)和2.branches表(列:branch_id,branch_name)。
在我的表单中,我有一个分支字段,它是选择字段。在该选择字段中,我需要从分支表中获取具有列分支名称的值。我做了那个功能。
现在我的要求是,在数据库中我需要在基于该branch_name的branches表中的users表中插入brach_id,
这是我的查询功能
String query = "insert into users(full_name,gender,mobile_number,"
+ "email,password,department,designation,emp_code,branch_id,created_on,created_by,last_logged_on) "
+ "values(?,?,?,?,?,?,?,?,"
+ "(select id from branches where branch_name=?),?,?,?)";
if(con!=null){
try{
ps=con.prepareStatement(query);
ps.setString(1, bean.getName());
if(bean.getGender().equals("Female")){
ps.setInt(2,1);
}else{
ps.setInt(2,0);
}
ps.setString(3, bean.getMobile());
ps.setString(4, bean.getUserid());
ps.setString(5, bean.getPassword());
ps.setString(6, bean.getDepartment());
ps.setString(7, bean.getDesignation());
ps.setString(8, bean.getEmpcode());
ps.setInt(9, bean.getBranchId());
ps.setTimestamp(10, new java.sql.Timestamp(new Date().getTime()));
ps.setInt(11, bean.getCreatedBy());
ps.setTimestamp(12, new java.sql.Timestamp(new Date().getTime()));
insert_flag=ps.executeUpdate();
我认为查询工作正常。在准备好的陈述中我得到的错误我不这么认为。
任何人都可以帮助我。
如果我像这样传递brach_name
选择查询中的 select id from branches where branch_name='"+branch+"'
我收到此错误`java.sql.SQLException:参数索引超出范围(12>参数个数,即11)。
请帮帮我
答案 0 :(得分:3)
此查询branch_name
返回多个double dbl_values[18];
for(int i = 0; i < 18; i++) {
dbl_values[i] = something; // Define variables here
}
值的结果。您在分支表中有重复的分支名称。
答案 1 :(得分:0)
实际上你在这里插入单行并尝试在column_id列中插入多行,因此得到错误。只需在下面更改插入语句,然后尝试 -
String query = "insert into users(full_name,gender,mobile_number,"
+ "email,password,department,designation,emp_code,branch_id,created_on,created_by,last_logged_on) "
+ "values(?,?,?,?,?,?,?,?,"
+ "(select id from branches where branch_name=? limit 1),?,?,?)";