protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try{
Employee emp=new Employee();
DBrelation db=new DBrelation();
Connection cn=db.getConnect();
PreparedStatement ps=cn.prepareStatement("select * from sbh");
ResultSet rs=ps.executeQuery();
Gson gson=new Gson();
ArrayList<Object> al=new ArrayList<Object>();
ArrayList<Object> list=new ArrayList<Object>();
while(rs.next())
{
emp.setEmp_Id(rs.getInt(1));
emp.setEmp_Name(rs.getString(2));
emp.setDesignation(rs.getString(3));
list.clear();
list.add(rs.getString(4));list=null;
emp.setSkills(list);
al.add(emp);
}
String st=gson.toJson(al);
out.println("{\"sbh\":"+st+"}");
cn.close();
}
catch(Exception e)
{ e.printStackTrace();}
}
}
输出我正在获取:{“ sbh”:[{“ Emp_Id”:1003,“ Emp_Name”:“ james”,“ Designation”:“ Zonal Manager”,“ Skills”:[“ oracle,MySQL,SQL Server”]} ,{“ Emp_Id”:1003,“ Emp_Name”:“ james”,“ Designation”:“区域管理器”,“技能”:[“ oracle,MySQL,SQL Server”]},{“ Emp_Id”:1003,“ Emp_Name “:” james“,” Designation“:”区域管理员“,”技能“:[” oracle,MySQL,SQL Server“]}]}
所需的输出:{“ sbh”:[{“ Emp_Id”:1001,“ Emp_Name”:“ jamee”,“ Designation”:“资产管理器”,“技能”:[“ oracle”]},{“ Emp_Id”:1002 ,“ Emp_Name”:“ jos”,“名称”:“ gen Manager”,“技能”:[“ MySQL”]},{“ Emp_Id”:1003,“ Emp_Name”:“ johns”,“名称”:“首席经理”,“技能”:[“ SQL Server”]}]}
最佳答案
您每次都将同一名员工添加到列表中,然后继续进行更新。在循环中创建一个新的雇员对象:
while(rs.next())
{
emp=new Employee();
...
关于mysql - 我想以Json格式从表中获取3条记录,但重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24632516/