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界面) 加 笔记和注意事项相关推荐

  1. 景点门票销售管理系统 基于 python实现gui界面 之 笔记

    1.建立数据库.建表.加外键约束.建触发器 此处106行 CREATE DATABASE IF NOT EXISTS `景点门票销售管理系统` DEFAULT CHARACTER SET utf8;U ...

  2. Matlab GUI界面编程小白学习笔记

    某个天朗气清的下午,老师给我布置了一个Matlab GUI 界面设计的任务,然后欢天喜地回家结婚去了,留我在美好的假期里继续孤零零地在学校里耕耘.好的,在此先祝贺老师新婚快乐,百年好合.然后咱们开始从 ...

  3. java获取界面输入数字_通过JAVA设计 GUI 界面的计算器程序,用户可以通过鼠标依次输入参加计算的数值,进行加、减、乘、...

    通过JAVA设计 GUI 界面的计算器程序,用户可以通过鼠标依次输入参加计算的数值,进行加.减.乘. 2016-08-22 0 0 0 4.0 分 其他 1 积分下载 如何获取积分? 通过JAVA设计 ...

  4. Python+appium+GUI界面pyside2微信自动加好友(改问候语、备注、标签)

    目录 一.项目背景 二.实现功能 三.具体实现代码 四.支持与合作 一.项目背景 首先,这是我的第一篇文章,写作功底有待提高,后续有时间我会对代码细节的讲解进行完善. 闲暇中,帮助朋友的初创公司开发了 ...

  5. Python列表实现矩阵的创建、输入输出、转化转置、加减乘运算并设计一个矩阵计算器GUI界面

    背景:在解决一些编程问题中如棋盘的初始化,链表,队列的构建:数据处理中如用SAS软件输入数据等涉及到矩阵的概念,而用编程语言实现矩阵的方式有C中的数组,python中的列表等.现在给你一个数据如下,或 ...

  6. python加密解密图形界面_Python笔记-GUI界面设计(tkinter)

    前言 此篇文章介绍的是有关GUI(Graphical User Interface)图形用户界面的设计. 使用到的库是tkinter,tkinter库在python3版本开始就是自带的库,IDLE就是 ...

  7. Matlab gui用户图形设计界面学习笔记(一)——单个界面的菜单设计

    Matlab gui用户图形设计界面学习笔记(一)--单个界面的菜单设计 弹出式菜单(pop-up menu)和下拉列表框(listbox) 实现功能:pop menu最初为 "请选择省份& ...

  8. 【Visual C++】游戏开发五十六 浅墨DirectX教程二十三 打造游戏GUI界面(一)

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/16384009 作者:毛星 ...

  9. DB2 UDB V8.1 管理 学习笔记

    DB2 UDB V8.1 管理 学习笔记 DB2 学习笔记 - AIview.com Last updated on Wednesday, August 24, 2005 Skip to naviga ...

  10. 【Qt设计开发】GUI界面设计开发

    文章目录 一.Qt简介和下载安装 二.Qt入门 2.1 创建第一个项目 2.2 快捷键和命名规范 2.3 Qt项目和VS2022项目相互转换 三.Qt基础 3.1 Qt对象树和窗口坐标系概念 3.2 ...

最新文章

  1. linux下接口持续集成,部署jenkins持续集成工具
  2. 剑指offer 27: 二叉搜索树与双向链表
  3. WIN7 不用格式化磁盘怎么把FAT32系统改成NTFS系统
  4. java自定义异常及异常的抛出
  5. invester is the person whose opinion is so valuable
  6. 【.NET Core 3.0】 46 ║ 授权认证:自定义返回格式
  7. ADO.NET提供的Connection类总结
  8. 使用jquery图表插件jqplot之折线图
  9. 二、华为鸿蒙开发DevEco Studio运行第一个Hello World工程
  10. Mac远程连接Windows的远程桌面服务
  11. 浏览器兼容性问题解决方案之CSS——已在IE、FF、Chrome测试
  12. linux 触摸屏在dev的那个目录下,各硬件设备在Linux中的文件名
  13. mac 电脑连接不上github_Mac版爱思助手【手机投屏直播】工具使用教程
  14. 智能创新引导工具软件——工作量分配和里程碑安排
  15. python公历转农历_Python农历公历转换
  16. Jenkins:This is especially strange since your build otherwise succeeded.及不是内外部指令问题
  17. 路由器网口1一直闪烁正常吗_路由器灯怎么闪才正常
  18. Semantic UI学习(一、开始使用)
  19. 打开Skype的时候提醒:TOM-Skype 已经停止工作,这是什么意思? 重装了一遍还是不能用。...
  20. Excel_文本转数值型

热门文章

  1. OO第一单元总结——求导之旅
  2. js检查身份证号是否正确
  3. 09-部署配置kubedns插件
  4. 3-单一职责原则+4-开放封闭原则+5依赖倒转原则
  5. matlab求最大公约数和最小公倍数
  6. Fail to queue the whole FAL gap in dataguard一例
  7. 单元素的枚举类型已经成为实现Singleton的最佳方法
  8. C#实现HTTP下载文件的方法
  9. C++11 using定义类型别名、模板别名
  10. VS2015 更换exe的图标