如图为一个简易的通讯录管理系统,使用Java eclipse+access数据库编写,想要增加实现排序功能,按姓名或电话进行排序
因为是新手,如果按姓名排序只知道是用 Select* From Person order by 姓名 ,问题是排序后如何更新界面,按姓名或者电话升序显示信息,但发生排序变化的只是这个小系统,数据库不改变,即重新运行后还是如上图所示,点击排序按钮才进行排序
首先select的时候排序不会影响数据库的存储方式,只是改变查询的结果,你可以尽情的去排序。
其次,如果你想点击排序,然后使这个系统界面变化的话,你需要把这个页面数据清掉,重新把排序的sql去数据库查询,返回结果重新赋值就好了。
PS: 因为数据量如果大了肯定会使用分页查询,所以一般来说是不会客户端界面进行前台排序,除非你只排序你那第一页的10条数据。
Person ORDER BY 姓名 , 电话
老大,你是想在系统中点了排序后,数据库也跟着改变存储顺序吗...你这个需求很奇葩呀...
select * from person order by name desc
重新绑定排序后的数据,刷新界面
你查的时候是按照一定的顺序查的,为什么要管数据库中的数据顺序 啊?数据库中的数据都是有一定的排序规则的。
在ID或者姓名的列上面添加一个点击事件,点击之后去后台用SQL排序,排序完,返回结果给前台,然后前台用数据更新界面即可。
select * from person order by name,telpheone desc
如果是SQL语句进行排序,那么只能是将表格清空,然后重新加载下。
不过你的程序也可以不要sql排序,而是直接在界面上排序,比如冒泡算法,交换某两行对应单元格的数据。
可以参照一下DataTables插件~!!点击表头可以排序滴~!!
将数据从TableModel里删除,然后再addRow
加个事件,按排序规则重新抓取数据
你这重新运行也是得去数据库查询的,到那个sql里面加上排序不就可以了,你管数据库的存储顺序干嘛呢
排序子句语法用order by 列名 asc/desc
如果纯粹是要保存排序后的效果,下次显示和之前显示一样
你就在表里面加入一列排序号,每次点排序后就把对应排序的结果更新进去,下次打开就按排序列order by查询就可以了
select * from person order by name desc 同时重新绑定排序后的数据,刷新界面
排序子句语法用order by 列名 asc/desc 也可以自己定义自己的列编号
推荐easyui或者layui动态表格,点击表头就排序了。如果在sql上排序 百分百是重新加载。
开发项目只要在前台排序就好了啊,数据库默认按照ID排序