关于#java#的问题,请各位专家解答!(开发工具-eclipse)

现有下拉框1获取了数据库表1的字段1,下拉框获取了数据库表2的字段,登录用户是表3的某个id。我想将
1.下拉框1选中的值a
2.值a所在的表1字段2对应的值
3.下拉框2选中的值
4.登录用户ID对应的姓名
这4个值放进表4。
且下拉框1选中的值a不能被其他用户再次选择
问用dao和servlet代码要怎么写?


DAO层:
//定义SQL语句,用于插入四个参数到表4中
String sql = "INSERT INTO table4 (valueA,valueB,valueC,name) VALUES(?,?,?,?)";
//创建PreparedStatement实例
PreparedStatement pstmt = conn.prepareStatement(sql);
//获取前端传来的参数
String valueA = request.getParameter("valueA");
String valueC = request.getParameter("valueC");
int userId = Integer.parseInt(request.getParameter("userId"));
//对占位符设置实际的参数
pstmt.setString(1,valueA);
//根据valueA从表1中查询出valueB
String sql2 = "SELECT valueB FROM table1 WHERE valueA=?";
PreparedStatement pstmt2 = conn.prepareStatement(sql2);
pstmt2.setString(1,valueA);
ResultSet rs = pstmt2.executeQuery();
String valueB = null;
if(rs.next()){
    valueB = rs.getString("valueB");
}
//将valueB参数设置到SQL语句中
pstmt.setString(2,valueB);
//设置valueC参数
pstmt.setString(3,valueC);
//根据userId从表3中查询出name
String sql3 = "SELECT name FROM table3 WHERE userId=?";
PreparedStatement pstmt3 = conn.prepareStatement(sql3);
pstmt3.setInt(1,userId);
ResultSet rs2 = pstmt3.executeQuery();
String name = null;
if(rs2.next()){
    name = rs2.getString("name");
}
//将name参数设置到SQL语句中
pstmt.setString(4,name);
//执行插入操作
pstmt.executeUpdate();
SERVLET层:
//获取前端传来的参数
String valueA = request.getParameter("valueA");
String valueC = request.getParameter("valueC");
int userId = Integer.parseInt(request.getParameter("userId"));
//创建DAO实例
DAO dao = new DAO();
//调用DAO实例的插入方法,将参数传入
dao.insert(valueA,valueC,userId);