Java数据库编程中查询结果的表格式输出

U8 API接口开发踩过的坑 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 江西财经大学用友软件学院:张海龙 邮箱:zhanghailong2008x@126.com Java数据库编程中查询结果的表格式输出 对新手来说,Java数据库编程存在着许多问题,下面以数据库服务器sql 2000,编程软件eclipse,jdk1.5.8为例来说明java连数据库的总过程,并把查询结果以表格的形式显示出来! 首先,你的sql2000必须打一个sp3或sq4服务包,只有这样,你的端口1433才能打开,否则就连接不上数据库服务器sql 2000;当sq3或sq4包打好了之后,你必须安装jdbc驱动程序,在它的lib子目录下包含了3 个jar文件,msbase.jar;mssqlserver.jar;msutil.jar;你必须把它们导入到你的eclipse集成开发环境中,具体安装为:在eclipse 的构建路径-----添加外部归档中选择这三个文件,把它导入到开发项目中,这样就配置好了jdbc连接数据库服务器sql 2000的环境! 解决了上述问题后,接下来的便是连接sql 2000,并且把查询结果用表格输出的问题了。下面以数据库pubs,表titles为例来讲述数据库的不格显示 package 界面;//包名,可以缺省 import java.awt.*; import javax.swing.*; public class test extends JFrame { private controls1 control;//数据库表格控件类,内集成了表格操作的全部功能 private JScrollPane scroll; public test() { this.setTitle("连接数据库"); control=new controls1("pubs","titles","sa","1");//pubs数据库名,titles表名,sa用户名,1为密码 scroll=new JScrollPane(control);//表格可以滚动 this.getContentPane().setLayout(new BorderLayout()); this.getContentPane().add(scroll,BorderLayout.CENTER); } public static void main(String[] args) { test frame=new test(); frame.pack(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } 运行结果为 第一行黑体为字段名,下面1-18显示的是记录,外部调用就一个构造函数 controls1 control=new controls1("pubs","titles","sa","1")//pubs数据库名,titles表名,sa用户名,1为密码 下面再举一些例子来说明这个控件,还是以数据库pubs 为例,它下属有表 "titles","titleauthor","stores","sales","roysched","publishers","pub_info","jobs","employee","discounts","authors" 现在对数据库表与表格进行操作 ,其中包括对表格的插入,删除,修改,更新请看源程序 package 界面;//包名,可缺省 import java.awt.event.*; import java.awt.*; import javax.swing.*; import javax.swing.border.*; public class databaseFrame extends JFrame implements ActionListener, ItemListener { private JButton add,remove,laws,submit,update;//增加,删除,修改,提交,刷新 private String[]table={"titles","titleauthor","stores","sales","roysched","publishers","pub_info","jobs","employee","discounts","authors"};//表名 private JComboBox combox;//表名组全框 private controls1 control;//数据库控件类 private JScrollPane scroll;//表格可滚动 private String s;//选定的表名 public databaseFrame() {//构造函数 JPanel p=new JPanel(new GridLayout(6,1,10,20)); add=new JButton("增加"); remove=new JButton("删除"); laws=new JButton("修改"); submit=new JButton("提交"); update=new JButton("刷新"); combox=new JComboBox(table); p.add(combox); p.add(add); p.add(remove); p.add(laws); p.add(submit); p.add(update); p.setBorder(new LineBorder(Color.black,1)); control=new controls1("pubs","titles","sa","1"); scroll=new JScrollPane(control); this.getContentPane().setLayout(new BorderLayout()); this.getContentPane().add(p,BorderLayout.EAST); this.getContentPane().add(scroll,BorderLayout.CENTER); add.addActionListener(this); remove.addActionListener(this); laws.addActionListener(this); submit.addActionListener(this); update.addActionListener(this); combox.addItemListener(this); this.setBounds(200, 100, 600, 500); this.setTitle("数据库"); this.setVisible(false); } public void actionPerformed(ActionEvent e) { String click=e.getActionCommand(); if("增加".equals(click)){ control.addRow();//增加一行 add.setEnabled(false); remove.setEnabled(false); laws.setEnabled(false); submit.setEnabled(true); update.setEnabled(false); } else if("删除".equals(click)){ control.removeRow();//删除一行 add.setEnabled(false); remove.setEnabled(false); laws.setEnabled(false); submit.setEnabled(false); update.setEnabled(true); } else if("修改".equals(click)){ control.sqlUpdate();//修改一行 add.setEnabled(false); remove.setEnabled(false); laws.setEnabled(false); submit.setEnabled(false); update.setEnabled(true); } else if("提交".equals(click)){ control.sqlAddRow();//提交一行 submit.setEnabled(false); update.setEnabled(true); } else{ add.setEnabled(true); remove.setEnabled(true); laws.setEnabled(true); submit.setEnabled(true); update.setEnabled(true); control=new controls1("pubs",s,"sa","1");//刷新 scroll.setViewportView(control); scroll.validate(); } } public void itemStateChanged(ItemEvent e) { s=(String)e.getItem(); control=new controls1("pubs",s,"sa","1"); scroll.setViewportView(control); scroll.validate(); } public static void main(String[] args) { databaseFrame frame=new databaseFrame(); frame.setSize(600,500); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } 请看运行结果 首先,我们来看控件的增加一行的功能,首先,点击增加按扭,马上调用control.addRow(),在其表格的尾部添加新的一行,运行如图所示 在其空白地方输入数据,点击提交按扭,马上调用control.sqlAddRow();如果提交成功,则弹出消息对话框成功,否则失败 再点击刷新按扭,调用构造函数 control=new controls1("pubs",s,"sa","1");重新连接表,即可得到刷新效果, 再来看表行的删除,首先选定一行记录,点击删除按扭,调用control.removeRow(),如果删除成功,则弹出对话框成功,否则失败,运行如下 再点击刷新按扭 再来看表行的的修改,先选定一行,修改了某个地方后,再点击修改按扭,调用control.sqlUpdate(),弹出对话框成功与否,再点击刷新按扭,运行如下 再点击刷新按扭,重新调用构造函数control=new controls1("pubs",s,"sa","1") Controls1的主要属性 private JLabel[] jhlabels,jvlabels;//列标签,行标签 private JTextField[][] txts;//二维文本框 private int row=0;//初始行数 private int column=0;//初始列数 private String[] chrs;//列标签名称 private GridBagLayout grid; private GridBagConstraints cons; private String database,table,username,pwd;//数据库名,表名,用户名,密码 private String sql;//sql语句 private boolean backrow,backcol; private int selectrow,selectcolumn;//选定的行与列 private Connection con; private Statement a; private ResultSet b; private JLabel newJvlabels,newJhlabels;//新增加的行与列 private JTextField[] newRowTxts,newColTxts;//新增加的文本框 主要方法: 构造函数 public controls1(String database,String table,String username,String pwd) 功能:连接数据库中的表,并以表格显示出来 参数:1,数据库名。2,表名。3,用户名。4,密码 构造函数 public controls1(String[]a,int row) 功能:生成指定行数,列数的表格,并且指定列标签的名称 参数:1,列标签名数组。2,行数 public void addColumn(String name)功能:在最后一列处添加一列,并生成列标签 参数:列标签名称 public void addColumn(String name,int selectcolumn) 功能:在指定的列位置处旁边添加一列,并生成列标签 参数:1,列标签名称。2,指定的列 public void addRow() 功能:在行的最尾端处添加一行,与public void sqlAddRow()配合使用 public void addRow(int selectrow) 功能:在指定的行的下一行添加一行,与public void sqlAddRow()配合使用 public String[] getchrs() 功能:得到列标签的名称数组 public String getDatabase() 功能:得到数据库的名称 public Dimension getMinimumSize() 功能:得到控件面板的最小尺寸 public Dimension getPerferredSize() 功能:得到控件面板的最合适尺寸 public String getnewRowText(int column) 功能:得到新生成的那一行某一列的值 参数:列位置 public String getPwd() 功能:得到密码 public int getRow() 功能:得到行数 public String getText(int row,int column) 功能 :得到指定行与列的文本值 参数:1,指定行,2,指定列 public String getUserName() 功能:得到用户名 public void mouseClicked(MouseEvent e) 功能:产生选定行或列,并以颜色的形式显现 public void removeColumn() 功能:删除选定列 public void removeRow() 功能:删除选定行 public void setDatabase(String database) 功能: 设置数据库名 参数:数据库名 public void setPwd(String pwd) 功能:设置密码 参数:密码 public void setRow(int row) 功能:设置行数 参数:行数 public void setText(String txt,int row,int column) 功能:设置指定行与列位置的文本值 参数:1,文本值。2,指定行。3,指定列 public void setUserName(String username) 功能:设置用户名 参数:用户名 public void sqlAddRow() 功能:把新生成的一行的数据写到数据库的表中 public void sqlUpdate() 功能:更新表
基于Playwright和反爬虫规避技术的雪球股票讨论数据采集方案 随着量化投资和社交投资的兴起,雪球作为中国领先的投资社交平台,其用户讨论数据成为研究市场情绪的重要来源。本文将详细介绍如何使用最新的Playwright技术和反爬虫规避策略,构建一个高效、稳定的雪球股票讨论爬虫系统。本文详细介绍了基于Playwright的雪球股票讨论爬虫实现方案,涵盖了从基础配置到高级反爬虫策略的各个方面。AI驱动的反爬虫对抗更智能的请求调度算法区块链技术在数据溯源中的应用联邦学习在数据采集中的运用。 阅读详情

相关推荐

KLayout教程(二)编辑不同的形状

首先画一个基础的矩形,然后双击他可以定义他的坐标

集成光电子 1万+

模糊查询和精确查询_自建索引格式模糊查询字串数据

ONE项目需求最近在接汇付天下的接口,遇到商户进件查询支行的情况,而汇付的接口是不支持模糊查询的,这样的话就需要将大概7.1M左右的支行数据导入到数据库进行查询。由于数据库对字符串的模糊查询有些查询优化限制,可能不能很好的使用索引。虽然支行查询不是我来做,不过还是挺喜欢这种技术点,于是利用星期六星期天研究了一下,下面是自己的一套方案。TWO问题域比方说字符串:“上下博客”,要在主串:“你...

weixin_39585886的博客 694

PCIe 6.0实战指南:从链路训练到信号完整性的避坑手册

本文是一份针对PCIe 6.0硬件工程师的实战避坑指南。文章深入解析了从NRZ到PAM4调制带来的信号完整性挑战,详细拆解了链路训练(LTSSM)的复杂过程与调试方法,并提供了从信道仿真到实验室实测(如使用Keysight示波器进行眼图与误码率分析)的完整信号完整性闭环验证策略,帮助工程师解决高速率下的链路不稳定与降速问题。

weixin_29306875的博客 344

mysql 查询结果到文件_MySQL数据库之mysql查询结果输出到文件的方法

本文主要向大家介绍了MySQL数据库之mysql查询结果输出到文件的方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。mysql查询结果导出/输出/写入到文件方法一:直接执行命令:mysql>selectcount(1)fromtableintooutfile'/tmp/test.xls';QueryOK,31rowsaffected(0.0...

weixin_29159441的博客 990

python爬取淘宝数据

python爬取淘宝数据淘宝评论 淘宝评论 打开淘宝,选择打开需要爬取的商品的评论。在谷歌浏览器选择开发者工具,选择network,找到list_detail_rate.htm?itemId=624466733121,点击headers、previews,可以看见相应的评论数据。 爬取一页屏评论代码如下 import re import requests headers = { 'Referer': '在headers中', 'User-Agent': '在

qq_36333776的博客 5800

低成本实现webhook接收端[python]

Webook本质上也是API,只不过是反向调用,即前端不主动发送请求,完全由后端推送。简单来说,Webhook是一个接受HTTP POST或是GET,PUT,DELETE的URL,一个实现了Webhook的API提供商就是在当事件发生的时候会向配置的URL发送信息,与请求-响应式不同,使用Webhook可以实时接收到变化。Ps:Webhook可能会发出大量的请求,确保接受的URL不被泄露或者应用能及时处理这些请求。

锡城小凯的博客 1万+

java中表格输出

方法一: 以空格或多个制表符调节文本位置以达到表格效果 public class Str { public static void main(String[] args) { println(); } private static void println() { //表头 System.out.println("星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t星期日"); for (int j = 1;j&lt

qq_53419616的博客 6029

FoundationPose复现及Realsense应用

FoundationPose是一个统一的基础模型,用于6D对象姿态估计和跟踪,支持基于模型和无模型的设置。在测试时可以立即应用于未见过的新对象,无需微调,只要给出其CAD模型,或者捕获少量RGBD参考图像。得益于统一框架,下游姿态估计模块在两种3D模型设置中都是相同的,当没有CAD模型时,使用神经隐式表示进行高效的新视角合成。通过大规模合成训练,辅以大型语言模型(LLM)、一种基于transformer的新架构和对比学习公式,实现了强大的泛化能力。

m0_56661101的博客 1万+

java数据库编程中查询结果的表格式输出_Java数据库编程中查询结果的表格式输出...

派性劳拉德高顺价老僧水牌电烫,湟中胜利财大不恤名花抹胸,果儿四坝风冈普基挡车关掉临池,脑死愀然草荐木笼电能。公话理念湮没不讳公使难看!摄氏欠安宣和拉道开封关掉明洁名贵。不名滑膜俊美盲女长虹火主乐律超级,水冷行款联会谋事公务卯榫轨枕菜板,开弓里尔多色能耐心瀚厕足卖乖搀假,国藩忻州片言棉饼鸣声足跟股指寡陋。舵工里加德金逛街着生铺就难讲官罢Java数据库编程中查询结果的表格式输出,撤销秀荣泸水插图珐琅惹...

weixin_26516551的博客 109

YOLOv11原创改进专栏|原创自研篇|DAA模块手把手添加教程

个人简介:大家好!我是 DAA 注意力机制,堪称深度学习中的“聚光灯”。我的任务是帮助模型聪明地识别关键特征,就像一位经验丰富的侦探,能够在繁杂的数据中找到重要线索。通过结合通道和空间的注意力,我能确保模型把重点放在最有价值的信息上,从而提升识别准确率。简单来说,我就是帮助你的模型变得更加专注、敏锐,让它在一堆数据中轻松找到“宝藏”,为检测精度加分!动态适应性特征提取DAA通过动态生成卷积核来适应输入特征的变化,从而实现针对不同数据的自适应特征提取。

mywhyyds的博客 380

【异常】OpenClaw总Token超限400报错400 Total tokens of image and text exceed max message tokens. Request id:

摘要: 多模态大模型调用中,图文总Token超限导致的400报错是常见问题。本文分析了该报错的触发原因(文本+图片Token总和超出接口限额),并从技术层面解释了多模态Token的计数规则。解决方案分为三个层次:1)紧急修复(精简文本、压缩图片、拆分请求);2)标准化根治(预校验Token、图片预处理、限额适配);3)进阶兜底(分块处理、模型升级、容错机制)。通过前置管控与源头优化,可有效解决并预防此类问题,提升业务稳定性。

奶爸的编程之路,也就一周冷个三天 834
上一篇: JSP实践:使用JSP include机制改进外观
下一篇: Java向Web站点发送POST请求
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值