关于我在学数据库中的一些问题及改正

我于2019-07-09日写完第一个我自己学习,并做的关于数据库的小程序,虽然做出来了,但有许多的问题,现在分享一些我自己碰见的问题并加以改正。但只是一部分,因为还有一些正在解决。
其中不凡在博客上寻找相关解决的问题和知识点,现在分享给大家。
博客中其他大牛写的博客:

vector 向量

https://www.cnblogs.com/zhaoyan001/p/6077492.html

jtable的详细使用

https://blog.csdn.net/qq_36880602/article/details/80651652

jtable的用法

https://blog.csdn.net/tobin_xu/article/details/78934437
https://www.cnblogs.com/pzy4447/p/4925125.html
https://blog.csdn.net/kamiiyu/article/details/892070

jtable的用法,事件处理

https://www.cnblogs.com/lixiaolun/archive/2012/12/19/2825080.html

limite的用法

https://www.cnblogs.com/cheerfulness/p/mysql_1.html

JScrollPane的使用

https://blog.csdn.net/qq_40270751/article/details/78720699

对话框的使用

https://www.cn blogs.com/jiangxiulian/p/5961990.html

Java图形界面——下拉框、列表框、滚动窗格组件

https://blog.csdn.net/my98800/article/details/72621027

java语句中显示当前时间的方法
public Object insertTime() {
Calendar calendar= Calendar.getInstance();
SimpleDateFormat dateFormat= new SimpleDateFormat(“yyyy-MM-dd :hh:mm:ss”);
return dateFormat.format(calendar.getTime());
}

JAVA学习中Swing概述中的JFrame学习 http://www.cnblogs.com/biehongli/p/57465

菜单栏

https://blog.csdn.net/bananachong/article/details/81660236

接下来是我从中遇到的一些问题

1.在文本框中只输入数字

String price=caiPingPriceText.getText();
if(price.matches("^[0.0-9.0]+$")) {
					System.out.println("是数字");
			}	else {
				System.out.println("输入的是乱码");}
				}

2.我怎么才能判断数据我注册的账号在数据库中是否存在呢?
先用数据库语句

select gzhanghao from administrator
List<Administrator>list=qr.query(sql, new BeanListHandler<Administrator>(Administrator.class));

然后在页面层判断这个返回来的list的大小是不是==0,如果是,说明数据库中没有,如果不是,则证明数据库中有
同理,我登录也是这样,判断查找出来的账号和密码的数组是否为空

controller.sjSelect(zhangHao,miMa).size()==0

3.怎么将数据库中的数据显示到表格中?

Object [][] data;
Object [] columnNames= {"ID","菜名","种类","价格"};
List <Menu> list=controller.selectAllMenu();
		data=new Object[list.size()][8];
		for(int i=0;i<list.size();i++) {
			Menu menu=list.get(i);
			data[i][0]=menu.getMid();
			data[i][1]=menu.getMname();
			data[i][2]=menu.getVariety();
			data[i][3]=menu.getMprice();
		}
		Object [][]rowdata=data;
		DefaultTableModel defaultTableModel = new DefaultTableModel(data,columnNames); 
		table.setModel(defaultTableModel); 
		JScrollPane scrollPane = new JScrollPane(table); 
		scrollPane.setViewportView(table);

那么我们可以进一步考虑怎么更新,如果我将表中的数据添加,删改,那么表应该刷新的,那么实现的方法是,我在写一个遍历的方法,来对表进行刷新

Object [][] data;
		Object [] columnNames= {"ID","菜名","种类","价格"};
		List<Menu> list=controller.selectAllMenu();
		Object data1[][]=new Object[list.size()][4];
		for(int i=0;i<list.size();i++) {
			Menu menu =list.get(i);
			data1[i][0]=menu.getMid();
			data1[i][1]=menu.getMname();
			data1[i][2]=menu.getVariety();
			data1[i][3]=menu.getMprice();
		}
		Object [][]rowdata=data1;
		DefaultTableModel defaultTableModel1=new DefaultTableModel(data1,columnNames); 
		ShangJiaCaiDanBiaoYeMian.table.setModel(defaultTableModel1); 	
		defaultTableModel1.fireTableDataChanged();	
		ShangJiaCaiDanBiaoYeMian.table.updateUI();
	}

此处用到了表格的刷新方法,

 defaultTableModel1.fireTableDataChanged();	
    ShangJiaCaiDanBiaoYeMian.table.updateUI();

还有一个这个刷新表格的方法

  table.invalidate();
  1. 分页问题:
    分页的话,一个是考虑是否有刷新,就比如上一页,下一页
    另一个是跳转,如何实现我输入哪页,那么实现的是哪页
    首先我们要限制页数有多少行,这里用到了limit
SELECT mid,mname,variety,mprice FROM menu LIMIT Star, recordCount?

Star为起始行数, recordCount为限定的行数有多少

先用数据库的函数查询总条数

SELECT COUNT(*) FROM menu

int star=0;//定义页数的起始位置

int pageSize=20;//定义记录条数为20条
	int totalRecouds=(int) menuController.selectSumPage();
//totalRecouds总记录条数
	inttotalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1  ;//总页数
	int  page3=1;
	String page2="1";

在此要注意的是,在数据库中查询的第一页是从0开始的,所以其页数要加1

这是其中的一些问题,在以后我还会在进行补充,来满足其中的不足,希望能对刚学数据库的小伙伴起到一些帮助。

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值