为什么只是重复第一条数据

雷龙信息技术 2020-04-29 03:13:39
Dao类的代码:

// 获取所有学生信息
public static List getStuInfos() {
List list = findForList("SELECT stuID,stuName,stuSex,stuBirthday,stuSchool,stuTele,stuFee,stulesson,stuLevel FROM student");
return list;
}

//读取学生信息
public static StudentInfo getStudentInfo() {
ResultSet rs = findForResultSet("select stuID,stuName,stuSex,stuBirthday,stuSchool,stuTele,stuFee,stulesson,stuLevel from student");
StudentInfo stuinfo = new StudentInfo();
try {
while (rs.next()) {
stuinfo.setstuID(rs.getString("stuID").trim());
stuinfo.setstuName(rs.getString("stuName").trim());
stuinfo.setstuSex(rs.getString("stuSex").trim());
stuinfo.setstuBirthday(rs.getDate("stuBirthday"));
stuinfo.setstuSchool(rs.getString("stuSchool").trim());
stuinfo.setstuTele(rs.getString("stuTele").trim());
stuinfo.setstuFee(rs.getString("stuFee").trim());
stuinfo.setstuLesson(rs.getString("stulesson").trim());
stuinfo.setstuLevel(rs.getString("stuLevel").trim());
}
} catch (SQLException e) {
e.printStackTrace();
}
return stuinfo;
}


另外一个界面调用:

//初始化表格
List stuInfos = Dao.getStuInfos();// 获得学生信息的集合

for (int i = 0; i < stuInfos.size(); i++)// 遍历学生信息的集合
{
//List info = (List) stuInfos.get(i);// 获得学生信息集合中的元素
//Item item = new Item();// 数据表公共类
StudentInfo stuinfo = Dao.getStudentInfo();// 读取学生信息

Object[] row = new Object[columnNames.length];// 创建长度为表头数组长度的数组
row[0] = stuinfo.getstuID();// 添加行数据之“序号”
row[1] = stuinfo.getstuName();// 添加行数据之“姓名”
row[2] = stuinfo.getstuSex();// 添加行数据之“性别”
row[3] = stuinfo.getstuBirthday();// 添加行数据之“出生日期”
row[4] = stuinfo.getstuSchool();// 添加行数据之“就读学校”
row[5] = stuinfo.getstuTele();// 添加行数据之“联系方式”
row[6] = stuinfo.getstuFee();// 添加行数据之“交费状态”
row[7] = stuinfo.getstuLesson();// 添加行数据之“上课状态”
row[8] = stuinfo.getstuLevel();// 添加行数据之“考级状态”
dftm.addRow(row);// 向表格默认模型中添加行数据

}


请问大神,为什么我查询出来的只是第一条数据的重复循环
...全文
791 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
雷龙信息技术 2020-05-02
  • 打赏
  • 举报
回复
Dao类

//读取学生信息
	public static List getStudentInfo() {
		ResultSet rs = findForResultSet("select stuID,stuName,stuSex,stuBirthday,stuSchool,stuTele,stuFee,stulesson,stuLevel from student");	
		List<StudentInfo> stuinfoList = new ArrayList<StudentInfo>();
		StudentInfo stuinfo = new StudentInfo();
		try {
			while (rs.next()) {
				stuinfo.setstuID(rs.getString("stuID").trim());
				stuinfo.setstuName(rs.getString("stuName").trim());
				stuinfo.setstuSex(rs.getString("stuSex").trim());
				stuinfo.setstuBirthday(rs.getDate("stuBirthday"));
				stuinfo.setstuSchool(rs.getString("stuSchool").trim());
				stuinfo.setstuTele(rs.getString("stuTele").trim());
				stuinfo.setstuFee(rs.getString("stuFee").trim());
				stuinfo.setstuLesson(rs.getString("stulesson").trim());
				stuinfo.setstuLevel(rs.getString("stuLevel").trim());
				stuinfoList.add(stuinfo);
				//System.out.println(stuinfo);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return stuinfoList;
	}
调用页面

//初始化表格
		List<StudentInfo> stuinfoList = Dao.getStudentInfo();
		for (int i = 0; i < stuinfoList.size(); i++)// 遍历学生信息的集合
		{
			
				Object[] row = new Object[columnNames.length];// 创建长度为表头数组长度的数组
						row[0] = stuinfoList.get(i).getstuID();// 添加行数据之“序号”
						row[1] = stuinfoList.get(i).getstuName();// 添加行数据之“姓名”
						row[2] = stuinfoList.get(i).getstuSex();// 添加行数据之“性别”
						row[3] = stuinfoList.get(i).getstuBirthday();// 添加行数据之“出生日期”
						row[4] = stuinfoList.get(i).getstuSchool();// 添加行数据之“就读学校”
						row[5] = stuinfoList.get(i).getstuTele();// 添加行数据之“联系方式”
						row[6] = stuinfoList.get(i).getstuFee();// 添加行数据之“交费状态”
						row[7] = stuinfoList.get(i).getstuLesson();// 添加行数据之“上课状态”
						row[8] = stuinfoList.get(i).getstuLevel();// 添加行数据之“考级状态”
						dftm.addRow(row);// 向表格默认模型中添加行数据			
	}
大神们 帮忙看一下,这样哪里出了问题,因为表格里显示的都是最后一条数据并且还全是重复的
南宫廿贰 2020-05-02
  • 打赏
  • 举报
回复
你把全部数据放入List集合然后返回集合循环集合
laoyouzhazi 2020-05-01
  • 打赏
  • 举报
回复
第一天才开始写代码,就变量类型搞混的典型问题
  • 打赏
  • 举报
回复
getStudenInfo 返回类型应该是list<stuinfo>, 如果findForResulSet 是执行SQL。
雷龙信息技术 2020-04-30
  • 打赏
  • 举报
回复
引用 15 楼 wennie_xxx3 的回复:
//读取学生信息 public static List getStudentInfo() { ResultSet rs = findForResultSet("select stuID,stuName,stuSex,stuBirthday,stuSchool,stuTele,stuFee,stulesson,stuLevel from student"); //创建学生集合用来接收学生信息对象 List<StudentInfo> stuinfoList = new ArrayList<StudentInfo>(); StudentInfo stuinfo = new StudentInfo(); try { while (rs.next()) { stuinfo.setstuID(rs.getString("stuID").trim()); stuinfo.setstuName(rs.getString("stuName").trim()); stuinfo.setstuSex(rs.getString("stuSex").trim()); stuinfo.setstuBirthday(rs.getDate("stuBirthday")); stuinfo.setstuSchool(rs.getString("stuSchool").trim()); stuinfo.setstuTele(rs.getString("stuTele").trim()); stuinfo.setstuFee(rs.getString("stuFee").trim()); stuinfo.setstuLesson(rs.getString("stulesson").trim()); stuinfo.setstuLevel(rs.getString("stuLevel").trim()); stuinfoList.add(stuinfo); } } catch (SQLException e) { e.printStackTrace(); } return stuinfoList; } 另外一个界面调用此方法然后直接遍历并且添加
出来的数据都是重复的 应该怎么修改?
雷龙信息技术 2020-04-30
  • 打赏
  • 举报
回复
引用 15 楼 wennie_xxx3 的回复:
//读取学生信息 public static List getStudentInfo() { ResultSet rs = findForResultSet("select stuID,stuName,stuSex,stuBirthday,stuSchool,stuTele,stuFee,stulesson,stuLevel from student"); //创建学生集合用来接收学生信息对象 List<StudentInfo> stuinfoList = new ArrayList<StudentInfo>(); StudentInfo stuinfo = new StudentInfo(); try { while (rs.next()) { stuinfo.setstuID(rs.getString("stuID").trim()); stuinfo.setstuName(rs.getString("stuName").trim()); stuinfo.setstuSex(rs.getString("stuSex").trim()); stuinfo.setstuBirthday(rs.getDate("stuBirthday")); stuinfo.setstuSchool(rs.getString("stuSchool").trim()); stuinfo.setstuTele(rs.getString("stuTele").trim()); stuinfo.setstuFee(rs.getString("stuFee").trim()); stuinfo.setstuLesson(rs.getString("stulesson").trim()); stuinfo.setstuLevel(rs.getString("stuLevel").trim()); stuinfoList.add(stuinfo); } } catch (SQLException e) { e.printStackTrace(); } return stuinfoList; } 另外一个界面调用此方法然后直接遍历并且添加
这样对吗?出来的是一条重复的数据,很多遍
wennie_xxx3 2020-04-30
  • 打赏
  • 举报
回复
//读取学生信息 public static List getStudentInfo() { ResultSet rs = findForResultSet("select stuID,stuName,stuSex,stuBirthday,stuSchool,stuTele,stuFee,stulesson,stuLevel from student"); //创建学生集合用来接收学生信息对象 List<StudentInfo> stuinfoList = new ArrayList<StudentInfo>(); StudentInfo stuinfo = new StudentInfo(); try { while (rs.next()) { stuinfo.setstuID(rs.getString("stuID").trim()); stuinfo.setstuName(rs.getString("stuName").trim()); stuinfo.setstuSex(rs.getString("stuSex").trim()); stuinfo.setstuBirthday(rs.getDate("stuBirthday")); stuinfo.setstuSchool(rs.getString("stuSchool").trim()); stuinfo.setstuTele(rs.getString("stuTele").trim()); stuinfo.setstuFee(rs.getString("stuFee").trim()); stuinfo.setstuLesson(rs.getString("stulesson").trim()); stuinfo.setstuLevel(rs.getString("stuLevel").trim()); stuinfoList.add(stuinfo); } } catch (SQLException e) { e.printStackTrace(); } return stuinfoList; } 另外一个界面调用此方法然后直接遍历并且添加
雷龙信息技术 2020-04-30
  • 打赏
  • 举报
回复
有人吗????
雷龙信息技术 2020-04-30
  • 打赏
  • 举报
回复
引用 17 楼 雷龙科技工作室 的回复:
[quote=引用 15 楼 wennie_xxx3 的回复:] //读取学生信息 public static List getStudentInfo() { ResultSet rs = findForResultSet("select stuID,stuName,stuSex,stuBirthday,stuSchool,stuTele,stuFee,stulesson,stuLevel from student"); //创建学生集合用来接收学生信息对象 List<StudentInfo> stuinfoList = new ArrayList<StudentInfo>(); StudentInfo stuinfo = new StudentInfo(); try { while (rs.next()) { stuinfo.setstuID(rs.getString("stuID").trim()); stuinfo.setstuName(rs.getString("stuName").trim()); stuinfo.setstuSex(rs.getString("stuSex").trim()); stuinfo.setstuBirthday(rs.getDate("stuBirthday")); stuinfo.setstuSchool(rs.getString("stuSchool").trim()); stuinfo.setstuTele(rs.getString("stuTele").trim()); stuinfo.setstuFee(rs.getString("stuFee").trim()); stuinfo.setstuLesson(rs.getString("stulesson").trim()); stuinfo.setstuLevel(rs.getString("stuLevel").trim()); stuinfoList.add(stuinfo); } } catch (SQLException e) { e.printStackTrace(); } return stuinfoList; } 另外一个界面调用此方法然后直接遍历并且添加
出来的数据都是重复的 应该怎么修改?[/quote] 调用页面这样写对吗?
雷龙信息技术 2020-04-30
  • 打赏
  • 举报
回复
引用 19 楼 meet_zzs 的回复:
[quote=引用 12 楼 雷龙科技工作室 的回复:] [quote=引用 9 楼 meet_zzs 的回复:] getStudentInfo()方法是多余的 ,把getStuInfos()里的list强转一下就好了 public static List getStuInfos() { List<StudentInfo> list = (List<StudentInfo>)findForList("SELECT stuID,stuName,stuSex,stuBirthday,stuSchool,stuTele,stuFee,stulesson,stuLevel FROM student"); return list; } 调用就可以写成 List<StudentInfo> stuInfos = Dao.getStuInfos();// 获得学生信息的集合 for (int i = 0; i < stuInfos.size(); i++)// 遍历学生信息的集合 { Object[] row = new Object[columnNames.length];// 创建长度为表头数组长度的数组 row[0] = stuInfos.get(i).getstuID(); row[1] = stuInfos.get(i).getstuName(); dftm.addRow(row);// 向表格默认模型中添加行数据 }
我试了 怎么提示class java.util.ArrayList cannot be cast to class leilong_dao_model.StudentInfo 也就是类java.util。ArrayList不能被转换为类leilong_dao_model.StudentInfo[/quote] 强转不行的话,这样写是没毛病的: public static List getStudentInfo() { ResultSet rs = findForResultSet("select stuID,stuName,stuSex,stuBirthday,stuSchool,stuTele,stuFee,stulesson,stuLevel from student"); //创建学生集合用来接收学生信息对象 List<StudentInfo> stuinfoList = new ArrayList<StudentInfo>(); StudentInfo stuinfo = new StudentInfo(); try { while (rs.next()) { stuinfo.setstuID(rs.getString("stuID").trim()); stuinfo.setstuName(rs.getString("stuName").trim()); stuinfo.setstuSex(rs.getString("stuSex").trim()); stuinfo.setstuBirthday(rs.getDate("stuBirthday")); stuinfo.setstuSchool(rs.getString("stuSchool").trim()); stuinfo.setstuTele(rs.getString("stuTele").trim()); stuinfo.setstuFee(rs.getString("stuFee").trim()); stuinfo.setstuLesson(rs.getString("stulesson").trim()); stuinfo.setstuLevel(rs.getString("stuLevel").trim()); stuinfoList.add(stuinfo); } } catch (SQLException e) { e.printStackTrace(); } return stuinfoList; } 既然它的数据还是重复的,你最好是一条条的调试了,查看你rs数据是什么样的,查看你的每一次循环StudentInfo类的实例数据是什么样的,上面这个答案已经是对于你所提供的信息最好的答复了[/quote] 感谢
meet_aas 2020-04-30
  • 打赏
  • 举报
回复
引用 12 楼 雷龙科技工作室 的回复:
[quote=引用 9 楼 meet_zzs 的回复:] getStudentInfo()方法是多余的 ,把getStuInfos()里的list强转一下就好了 public static List getStuInfos() { List<StudentInfo> list = (List<StudentInfo>)findForList("SELECT stuID,stuName,stuSex,stuBirthday,stuSchool,stuTele,stuFee,stulesson,stuLevel FROM student"); return list; } 调用就可以写成 List<StudentInfo> stuInfos = Dao.getStuInfos();// 获得学生信息的集合 for (int i = 0; i < stuInfos.size(); i++)// 遍历学生信息的集合 { Object[] row = new Object[columnNames.length];// 创建长度为表头数组长度的数组 row[0] = stuInfos.get(i).getstuID(); row[1] = stuInfos.get(i).getstuName(); dftm.addRow(row);// 向表格默认模型中添加行数据 }
我试了 怎么提示class java.util.ArrayList cannot be cast to class leilong_dao_model.StudentInfo 也就是类java.util。ArrayList不能被转换为类leilong_dao_model.StudentInfo[/quote] 强转不行的话,这样写是没毛病的: public static List getStudentInfo() { ResultSet rs = findForResultSet("select stuID,stuName,stuSex,stuBirthday,stuSchool,stuTele,stuFee,stulesson,stuLevel from student"); //创建学生集合用来接收学生信息对象 List<StudentInfo> stuinfoList = new ArrayList<StudentInfo>(); StudentInfo stuinfo = new StudentInfo(); try { while (rs.next()) { stuinfo.setstuID(rs.getString("stuID").trim()); stuinfo.setstuName(rs.getString("stuName").trim()); stuinfo.setstuSex(rs.getString("stuSex").trim()); stuinfo.setstuBirthday(rs.getDate("stuBirthday")); stuinfo.setstuSchool(rs.getString("stuSchool").trim()); stuinfo.setstuTele(rs.getString("stuTele").trim()); stuinfo.setstuFee(rs.getString("stuFee").trim()); stuinfo.setstuLesson(rs.getString("stulesson").trim()); stuinfo.setstuLevel(rs.getString("stuLevel").trim()); stuinfoList.add(stuinfo); } } catch (SQLException e) { e.printStackTrace(); } return stuinfoList; } 既然它的数据还是重复的,你最好是一条条的调试了,查看你rs数据是什么样的,查看你的每一次循环StudentInfo类的实例数据是什么样的,上面这个答案已经是对于你所提供的信息最好的答复了
雷龙信息技术 2020-04-30
  • 打赏
  • 举报
回复
有大神吗???
雷龙信息技术 2020-04-29
  • 打赏
  • 举报
回复
求大神帮忙改一下代码 谢谢
雷龙信息技术 2020-04-29
  • 打赏
  • 举报
回复
引用 9 楼 meet_zzs 的回复:
getStudentInfo()方法是多余的 ,把getStuInfos()里的list强转一下就好了 public static List getStuInfos() { List<StudentInfo> list = (List<StudentInfo>)findForList("SELECT stuID,stuName,stuSex,stuBirthday,stuSchool,stuTele,stuFee,stulesson,stuLevel FROM student"); return list; } 调用就可以写成 List<StudentInfo> stuInfos = Dao.getStuInfos();// 获得学生信息的集合 for (int i = 0; i < stuInfos.size(); i++)// 遍历学生信息的集合 { Object[] row = new Object[columnNames.length];// 创建长度为表头数组长度的数组 row[0] = stuInfos.get(i).getstuID(); row[1] = stuInfos.get(i).getstuName(); dftm.addRow(row);// 向表格默认模型中添加行数据 }
我试了 怎么提示class java.util.ArrayList cannot be cast to class leilong_dao_model.StudentInfo 也就是类java.util。ArrayList不能被转换为类leilong_dao_model.StudentInfo
丈量流年 2020-04-29
  • 打赏
  • 举报
回复
//初始化表格
List stuInfos = Dao.getStuInfos();// 获得学生信息的集合

for (int i = 0; i < stuInfos.size(); i++)// 遍历学生信息的集合
{
//List info = (List) stuInfos.get(i);// 获得学生信息集合中的元素
//Item item = new Item();// 数据表公共类
StudentInfo stuinfo = stuInfos[i];// 读取学生信息

Object[] row = new Object[columnNames.length];// 创建长度为表头数组长度的数组
row[0] = stuinfo.getstuID();// 添加行数据之“序号”
row[1] = stuinfo.getstuName();// 添加行数据之“姓名”
row[2] = stuinfo.getstuSex();// 添加行数据之“性别”
row[3] = stuinfo.getstuBirthday();// 添加行数据之“出生日期”
row[4] = stuinfo.getstuSchool();// 添加行数据之“就读学校”
row[5] = stuinfo.getstuTele();// 添加行数据之“联系方式”
row[6] = stuinfo.getstuFee();// 添加行数据之“交费状态”
row[7] = stuinfo.getstuLesson();// 添加行数据之“上课状态”
row[8] = stuinfo.getstuLevel();// 添加行数据之“考级状态”
dftm.addRow(row);// 向表格默认模型中添加行数据

}
  • 打赏
  • 举报
回复
StudentInfo stuinfo = Dao.getStudentInfo();// 读取学生信息
把这个代码改成
StudentInfo stuinfo = stuInfos.get(i);// 读取学生信息
就好了
meet_aas 2020-04-29
  • 打赏
  • 举报
回复
getStudentInfo()方法是多余的 ,把getStuInfos()里的list强转一下就好了 public static List getStuInfos() { List<StudentInfo> list = (List<StudentInfo>)findForList("SELECT stuID,stuName,stuSex,stuBirthday,stuSchool,stuTele,stuFee,stulesson,stuLevel FROM student"); return list; } 调用就可以写成 List<StudentInfo> stuInfos = Dao.getStuInfos();// 获得学生信息的集合 for (int i = 0; i < stuInfos.size(); i++)// 遍历学生信息的集合 { Object[] row = new Object[columnNames.length];// 创建长度为表头数组长度的数组 row[0] = stuInfos.get(i).getstuID(); row[1] = stuInfos.get(i).getstuName(); dftm.addRow(row);// 向表格默认模型中添加行数据 }
丶轩 2020-04-29
  • 打赏
  • 举报
回复
获取List<学生> 循环List<学生> 取每一个list.get(i)的学生数据,添加到表格中
雷龙信息技术 2020-04-29
  • 打赏
  • 举报
回复
引用 3 楼 丶轩 的回复:
- - 因为你循环的只有一个stuinfo啊 你往表格里加的永远是这一个学生。你那个学生列表list根本没取值啊只是用了size做循环
兄弟应该怎么改?
雷龙信息技术 2020-04-29
  • 打赏
  • 举报
回复
引用 5 楼 nayi_224 的回复:
		// 初始化表格
		List stuInfos = Dao.getStuInfos();// 获得学生信息的集合

		for (int i = 0; i < stuInfos.size(); i++)// 遍历学生信息的集合
		{
			Object[] row = new Object[columnNames.length];// 创建长度为表头数组长度的数组
			row[0] = stuInfos.get(i).getstuID();
			row[1] = stuInfos.get(i).getstuName();
			dftm.addRow(row);// 向表格默认模型中添加行数据
		}
这样貌似不行?
加载更多回复(5)

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧