DB2 亲身实例(GUI界面) 加 笔记和注意事项
import java.lang.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.sql.*;
import java.util.*;
import javax.swing.table.DefaultTableModel;//一开始总是点击按钮不动,后来发现是忘记给控件添加监听器了
public class tbGui extends JFrame implements ActionListener {/*** */private static final long serialVersionUID = 1L;JTable a;//先定义一个JTable类型JPanel b=new JPanel();//JPanelJButton putinS=new JButton("单行插入");JButton putinDuo=new JButton("多行插入");JButton putinDan=new JButton("子查询插入");JTextField sole=new JTextField();//单行插入JTextArea duo=new JTextArea();//多行插入JTextField dan=new JTextField();//子查询插入public DefaultTableModel tableModel;//建立表格模型对象JScrollPane duoInsert;//用于多行插入的上下滑动JScrollPane scrollPane;Connection sample;//用于连接数据库//SQL语句//Statement对象是用于SQL语句操作的,一般一次性存储操作用Statement。批量的情况下用PreparedStatementContainer nn;public tbGui(){super("JTempl数据表\n");Object[][] playerInfo={//创建表格中的数据,Templ中是num和name{new Integer(1000),"王鹏"},{new Integer(1001),"朱雀"},{new Integer(1002),"大鲨鱼"}};String[] Names = { "学号" , "姓名" };tableModel=new DefaultTableModel(playerInfo,Names);//建立JTableModel模板a=new JTable(tableModel);//构建JTable控件,利用DefaultTableModel模板,方便以后增加删除行//a.setPreferredScrollableViewportSize(new Dimension(550,100));scrollPane = new JScrollPane(a);//为JTable a建立一个区域scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);//显示水平滑动栏scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);//显示竖直滑动栏nn=getContentPane();nn.setLayout(null);//自由布局duoInsert=new JScrollPane(duo);duoInsert.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);//显示水平滑动栏duoInsert.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);//显示竖直滑动栏nn.add(scrollPane);nn.add(putinS);nn.add(putinDuo);nn.add(sole);nn.add(duoInsert);nn.add(putinDan);//nn.add(dan);putinS.addActionListener(this);//在类内定义监听器时候用thisputinDuo.addActionListener(this);putinDan.addActionListener(this);sole.setBounds(10, 350, 400, 50);duoInsert.setBounds(10, 500, 400, 100);putinDuo.setBounds(430,500,100,100);putinS.setBounds(430, 350, 100, 50);scrollPane.setBounds(10,30,500,300);dan.setBounds(10, 650, 400, 50);putinDan.setBounds(430,650,100,50);nn.add(b);setSize(900,900);setVisible(true);try {//错误根源sample = DriverManager.getConnection("jdbc:db2:sample","db2admin","db2admin");//连接数据库sample.setAutoCommit(false);} catch (SQLException e) {// TODO 自动生成的 catch 块JOptionPane.showMessageDialog(null, "数据库错误", "找不到该数据库",JOptionPane.ERROR_MESSAGE);e.printStackTrace();} nn.add(b);Show();setSize(900,900);setVisible(true);}static{ try{ Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");//Class.forName用来加载字符串所对应的类,//这样子DriverManager就可以使用了}catch (Exception e){ System.out.println ("\n Error loading DB2 Driver...\n");System.out.println (e);System.exit(1);}}public void Show()//显示数据库中的数据到JTable上{try{String sql="select * from admin.TEMPL";//创建Sql语句,表前面要根据用户的不同添加不同的用户,比如admin用户,建立了templ表System.out.println("");PreparedStatement stmt=sample.prepareStatement(sql);//创建Sql语句陈述,用来excuteResultSet rs=stmt.executeQuery();if(rs==null){System.out.println("结果集无数据");return;}//如果表没有数据应该返回ResultSetMetaData rest=rs.getMetaData();//得到列数,变量类型等需要这个列int row=rs.getRow();int colum=rest.getColumnCount();//得到列数for(int i=0;i<=row-1;i++){String[] ggget=new String[colum];for(int j=0;j<=colum-1;j++){ggget[j]=rs.getString(j);}tableModel.addRow(ggget);if(!rs.next()){break;}}//得到了TEMPL表中的所有数据并且进行显示}catch(Exception e){System.out.println(e.getMessage());}}public static void main(String[] args){tbGui nn=new tbGui();nn.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根if(e.getSource()==putinS){try{String sql="insert into admin.TEMPL (NUM,NAME) values(?,?)";PreparedStatement sss=sample.prepareStatement(sql);//String ppp=sole.getText();//获取输入的数据int blank=0;String num="";String name="";//String[] sub=ppp.split(" ");//这种正则表达式拆分空格的方法是错误的String[] sub=ppp.split("\\s+");//正确方法,\s表示任何空白字符,由于有\所以是 "\\s"if(sub.length>2) {System.out.println("输入不符合格式 重新输入");return;}name=name+sub[1]; num=num+sub[0];int inNum=Integer.parseInt(num);//将数字字符串转化为整型sss.setInt(1, inNum);sss.setString(2, name);sss.executeUpdate();//更新操作在设置完变量的值之后,它是相当于//preparedstatement对象sss已经编译好了,并且设置好了变量的值,然后这个时候才能用它去执行,否则会报sqlcode:07001错误String[] valu= {num,name};tableModel.addRow(valu);sample.commit();//必须要有提交操作!!!!!否则就算executeUpdate()了也没有用}catch(Exception x){System.out.println(x.getMessage());}}//单行插入if(e.getSource()==putinDuo){}//多行插入if(e.getSource()==putinDan){}//子查询插入}}
DB2 亲身实例(GUI界面) 加 笔记和注意事项相关推荐
- 景点门票销售管理系统 基于 python实现gui界面 之 笔记
1.建立数据库.建表.加外键约束.建触发器 此处106行 CREATE DATABASE IF NOT EXISTS `景点门票销售管理系统` DEFAULT CHARACTER SET utf8;U ...
- Matlab GUI界面编程小白学习笔记
某个天朗气清的下午,老师给我布置了一个Matlab GUI 界面设计的任务,然后欢天喜地回家结婚去了,留我在美好的假期里继续孤零零地在学校里耕耘.好的,在此先祝贺老师新婚快乐,百年好合.然后咱们开始从 ...
- java获取界面输入数字_通过JAVA设计 GUI 界面的计算器程序,用户可以通过鼠标依次输入参加计算的数值,进行加、减、乘、...
通过JAVA设计 GUI 界面的计算器程序,用户可以通过鼠标依次输入参加计算的数值,进行加.减.乘. 2016-08-22 0 0 0 4.0 分 其他 1 积分下载 如何获取积分? 通过JAVA设计 ...
- Python+appium+GUI界面pyside2微信自动加好友(改问候语、备注、标签)
目录 一.项目背景 二.实现功能 三.具体实现代码 四.支持与合作 一.项目背景 首先,这是我的第一篇文章,写作功底有待提高,后续有时间我会对代码细节的讲解进行完善. 闲暇中,帮助朋友的初创公司开发了 ...
- Python列表实现矩阵的创建、输入输出、转化转置、加减乘运算并设计一个矩阵计算器GUI界面
背景:在解决一些编程问题中如棋盘的初始化,链表,队列的构建:数据处理中如用SAS软件输入数据等涉及到矩阵的概念,而用编程语言实现矩阵的方式有C中的数组,python中的列表等.现在给你一个数据如下,或 ...
- python加密解密图形界面_Python笔记-GUI界面设计(tkinter)
前言 此篇文章介绍的是有关GUI(Graphical User Interface)图形用户界面的设计. 使用到的库是tkinter,tkinter库在python3版本开始就是自带的库,IDLE就是 ...
- Matlab gui用户图形设计界面学习笔记(一)——单个界面的菜单设计
Matlab gui用户图形设计界面学习笔记(一)--单个界面的菜单设计 弹出式菜单(pop-up menu)和下拉列表框(listbox) 实现功能:pop menu最初为 "请选择省份& ...
- 【Visual C++】游戏开发五十六 浅墨DirectX教程二十三 打造游戏GUI界面(一)
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/16384009 作者:毛星 ...
- DB2 UDB V8.1 管理 学习笔记
DB2 UDB V8.1 管理 学习笔记 DB2 学习笔记 - AIview.com Last updated on Wednesday, August 24, 2005 Skip to naviga ...
- 【Qt设计开发】GUI界面设计开发
文章目录 一.Qt简介和下载安装 二.Qt入门 2.1 创建第一个项目 2.2 快捷键和命名规范 2.3 Qt项目和VS2022项目相互转换 三.Qt基础 3.1 Qt对象树和窗口坐标系概念 3.2 ...
最新文章
- linux下接口持续集成,部署jenkins持续集成工具
- 剑指offer 27: 二叉搜索树与双向链表
- WIN7 不用格式化磁盘怎么把FAT32系统改成NTFS系统
- java自定义异常及异常的抛出
- invester is the person whose opinion is so valuable
- 【.NET Core 3.0】 46 ║ 授权认证:自定义返回格式
- ADO.NET提供的Connection类总结
- 使用jquery图表插件jqplot之折线图
- 二、华为鸿蒙开发DevEco Studio运行第一个Hello World工程
- Mac远程连接Windows的远程桌面服务
- 浏览器兼容性问题解决方案之CSS——已在IE、FF、Chrome测试
- linux 触摸屏在dev的那个目录下,各硬件设备在Linux中的文件名
- mac 电脑连接不上github_Mac版爱思助手【手机投屏直播】工具使用教程
- 智能创新引导工具软件——工作量分配和里程碑安排
- python公历转农历_Python农历公历转换
- Jenkins:This is especially strange since your build otherwise succeeded.及不是内外部指令问题
- 路由器网口1一直闪烁正常吗_路由器灯怎么闪才正常
- Semantic UI学习(一、开始使用)
- 打开Skype的时候提醒:TOM-Skype 已经停止工作,这是什么意思? 重装了一遍还是不能用。...
- Excel_文本转数值型