上一篇,操作员页面设计

现在我们就来实现一下对户头的增删改查。

目录

添加户头

增加户头页面设计:

增加户头功能设计

Host

显示户头

1.显示户头的页面设计

2.显示户头功能设计

删除户头

1.删除户头页面设计

2.删除户头功能设计

更新户头

1.更新户头界面设计

2.更新户头功能设计


添加户头

增加户头页面设计:

也就是AddHost函数里面具体内容:

AddHost(){setSize(650,300);setBorder(BorderFactory.createTitledBorder("增加户头"));t1 = new JTextField(10);l1=new Label("请输入身份证号");t2 = new JTextField(10);l2=new Label("请输入姓名");t3 = new JTextField(10);l3=new Label("请输入性别");t4 = new JTextField(10);l4=new Label("请输入家庭住址");t5 = new JTextField(10);l5=new Label("请输入宅基地大小");t6 = new JTextField(10);l6=new Label("请输入手机号");t7 = new JTextField(10);l7=new Label("请输入贫困类");setLayout(new GridLayout(5,2));JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();JPanel p4 = new JPanel();JPanel p5 = new JPanel();JPanel p6 = new JPanel();JPanel p7 = new JPanel();p1.add(l1);p2.add(l2);p3.add(l3);p4.add(l4);p5.add(l5);p6.add(l6);p7.add(l7);p1.add(t1);p2.add(t2);p3.add(t3);p4.add(t4);p5.add(t5);p6.add(t6);p7.add(t7);add(p1);add(p2);add(p3);add(p4);add(p5);add(p6);add(p7);JPanel p8 = new JPanel();bOK = new JButton("增加");bOK.addActionListener(this);p8.add(bOK); add(p8);}

当我们把页面布置完毕,现在就是实现点击监听方法,怎么样才能把文本框的内容输入到数据库中:

增加户头功能设计

 @Overridepublic void actionPerformed(ActionEvent e) {Object obj = e.getSource();if(obj == bOK) {String hid = this.t1.getText();String hname = this.t2.getText();String hsex = this.t3.getText();String h_haddress = this.t4.getText();String hraea = this.t5.getText();String h_phone = this.t6.getText();String hpleve = this.t7.getText();Connection connection=myDataBase.getConnection();//与数据库建立联系String sql = "insert into t_host(hid,hname,hsex,h_haddress,harear,h_phone,hpleve) values("+hid+",'"+hname+"','"+hsex+"','"+h_haddress+"','"+hraea+"','"+h_phone+"','"+hpleve+"')";try {PreparedStatement ps=connection.prepareStatement(sql);System.out.println(sql);ps.execute(sql);//执行Sql语句boolean i=ps.execute("select * from t_host where hid=("+hid+")");//判断之前的数据有没有插入到数据库myDataBase.close(ps,connection);if (i)JOptionPane.showMessageDialog(null,"添加成功!","系统信息",JOptionPane.INFORMATION_MESSAGE);}catch(Exception e1) {System.err.println(e1.getMessage());JOptionPane.showMessageDialog(null,"添加失败!","系统信息",JOptionPane.INFORMATION_MESSAGE);}}}

上面的添加 功能我当初是作为一个测试来写,所以它的功能就写在了添加的页面设计中去,后期为了方便管理和美观下面三个功能,我单独拿出来,把具体实现,放在了OperatorDao中。

所以在实现下面三个功能时,我们先建立一个类,这个类的字段和属性要根据你设计的数据库的字段和属性来设置。

Host

public class Host {private String hid;private String hname;private String hsex;private String h_haddress;private Double harear;private Integer h_phone;private Integer hnumber;private String hpleve;public String getHid() {return hid;}public void setHid(String hid) {this.hid = hid;}public String getHname() {return hname;}public void setHname(String hanme) {this.hname = hanme;}public String getHsex() {return hsex;}public void setHsex(String hsex) {this.hsex = hsex;}public String getH_haddress() {return h_haddress;}public void setH_haddress(String h_haddress) {this.h_haddress = h_haddress;}public Double getHarear() {return harear;}public void setHarear(Double harear) {this.harear = harear;}public Integer getH_phone() {return h_phone;}public void setH_phone(Integer h_phone) {this.h_phone = h_phone;}public Integer getHnumber() {return hnumber;}public void setHnumber(Integer hnumber) {this.hnumber = hnumber;}public String getHpleve() {return hpleve;}public void setHpleve(String hpleve) {this.hpleve = hpleve;}@Overridepublic String toString() {return "Host{" +"hid='" + hid + '\'' +", hanme='" + hname + '\'' +", hsex='" + hsex + '\'' +", h_haddress='" + h_haddress + '\'' +", harear=" + harear +", h_phone=" + h_phone +", hnumber=" + hnumber +", hpleve='" + hpleve + '\'' +'}';}

显示户头

1.显示户头的页面设计

ShowHost内部代码

 ShowHost(List<Host> list) {setSize(650, 600);setBorder(BorderFactory.createTitledBorder("显示户头"));String[] index = {"身份证号", "姓名", "性别", "家庭住址", "在基地大小", "电话", "家庭人口", "贫苦等级"};Object[][] data = new Object[list.size()][index.length];//向data添加数据for (int i = 0; i < list.size(); i++) {Host host = list.get(i);data[i][0] = host.getHid();data[i][1] = host.getHname();data[i][2] = host.getHsex();data[i][3] = host.getH_haddress();data[i][4] = host.getHarear();data[i][5] = host.getH_phone();data[i][6] = host.getHnumber();data[i][7] = host.getHpleve();}//添加一个表格DefaultTableModel dtm = new DefaultTableModel(data, index);JTable table = new JTable(dtm);table.setBackground(Color.PINK);//设置table的高度和宽度table.setPreferredScrollableViewportSize(new Dimension(650, 500));table.setFillsViewportHeight(true);//5,给表格设置滚动条JScrollPane jScrollPane = new JScrollPane();jScrollPane.setViewportView(table);//添加滚条add(jScrollPane, BorderLayout.SOUTH);}

2.显示户头功能设计

1.这是在OperatorDao中的功能。接下来的功能也是类似的。

  //获取数据以结果集返回,查找户头数据,public static List<Host> getData() {String sql = "select * from t_host";PreparedStatement ps;LinkedList<Host> list = null;try {Connection connection = myDataBase.getConnection();ps = connection.prepareStatement(sql);ResultSet result = ps.executeQuery();//获得结果集list = new LinkedList<>();while (result.next()) {Host host = new Host();host.setHid(result.getString("hid"));host.setHname(result.getString("hname"));host.setHsex(result.getString("hsex"));host.setH_haddress(result.getString("h_haddress"));host.setHarear(result.getDouble("harear"));host.setH_phone(result.getInt("h_phone"));host.setHnumber(result.getInt("hnumber"));host.setHpleve(result.getString("hpleve"));list.add(host);}myDataBase.close(ps, connection);} catch (SQLException e) {e.printStackTrace();}return list;}

2.在OperatorJF也就是管理员内部加上这个。添加户头在上一篇介绍操作员界面时举过例子,所以不在概述,后面的删除和修改也是和下面类似,我将不在 一 一举例。

 //显示户头操作面板jm2.addActionListener(e -> {jc.removeAll();jc.repaint();//重新绘制jc.add(new ShowHost(OperatorDao.getData()));//添加新面板jc.revalidate();//重新布局});

删除户头

1.删除户头页面设计

public class DeleteHost extends Jcenter{DeleteHost(){setSize(650,300);setBorder(BorderFactory.createTitledBorder("删除户头"));Label la=new Label("温馨提示删除户头前,请先将该户头下的全部家庭成员修改或者移除");add(la);JPanel p1=new JPanel();Label ll=new Label("输入要删除的户主身份证号:");JTextField f1=new JTextField(4);p1.add(ll);p1.add(f1);add(p1);Button bOK=new Button("确认");add(bOK);bOK.addActionListener(e -> {String hid=f1.getText();OperatorDao.deleteById(hid);});}
}

2.删除户头功能设计

//通过Id删除数据public static void deleteById(String hid) {String sql = "delete from t_host where hid=?";//类似于一个占位符PreparedStatement ps;try {Connection connection = myDataBase.getConnection();ps = connection.prepareStatement(sql);ps.setString(1, hid);//参数标记从 1 开始编号, 通常指的是第一个“?”ps.executeUpdate();int f = ps.executeUpdate();if (f > 0) {JOptionPane.showMessageDialog(null, "没有删除数据");} else {JOptionPane.showMessageDialog(null, "成功删除数据");}ps.close();connection.close();} catch (SQLException e) {e.printStackTrace();}}

更新户头

更新户头我设计的是用ID查找对应户头信息,然后把被查找到的户头信息显示在文本框中,再对文本框中内容进行修改,再提交。(之前有位读者,跟我反映了一下身份证号无法修改的问题,我现在把之前的问题解决了一下,如果还有其他的小毛病欢迎大家私聊我)

1.更新户头界面设计

public class UpdateHost extends Jcenter  {JButton bOK;JTextField t1,t2,t3,t4,t5,t6,t7,t8;Label l1,l2,l3,l4,l5,l6,l7,l8;UpdateHost(){setSize(650,300);setBorder(BorderFactory.createTitledBorder("修改户头"));Label ll=new Label("请输入要修改的户主身份证号:");JTextField jt=new JTextField(10);Button bc=new Button("查找");JPanel jp=new JPanel();jp.add(ll);jp.add(jt);jp.add(bc);add(jp);t1 = new JTextField(10);l1=new Label("身份证号");t2 = new JTextField(10);l2=new Label("姓名");t3 = new JTextField(10);l3=new Label("性别");t4 = new JTextField(10);l4=new Label("家庭住址");t5 = new JTextField(10);l5=new Label("宅基地大小");t6 = new JTextField(10);l6=new Label("手机号");t7=new JTextField(10);l7=new Label("家庭人口");t8 = new JTextField(10);l8=new Label("贫困等级" );setLayout(new GridLayout(5,2));JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();JPanel p4 = new JPanel();JPanel p5 = new JPanel();JPanel p6 = new JPanel();JPanel p7 = new JPanel();JPanel p8 = new JPanel();p1.add(l1);p2.add(l2);p3.add(l3);p4.add(l4);p5.add(l5);p6.add(l6);p7.add(l7);p8.add(l8);p1.add(t1);p2.add(t2);p3.add(t3);p4.add(t4);p5.add(t5);p6.add(t6);p7.add(t7);p8.add(t8);add(p1);add(p2);add(p3);add(p4);add(p5);add(p6);add(p7);add(p8);JPanel p9 = new JPanel();bOK = new JButton("确认");p9.add(bOK); add(p9);bc.addActionListener(e->{ //通过ID查找户头然后,将查找到的信息写在文本框中Connection connection = myDataBase.getConnection();PreparedStatement ps;try {ps = connection.prepareStatement("select * from t_host where hid=?");ps.setString(1, jt.getText());ResultSet result = ps.executeQuery();while (result.next()) {t1.setText(result.getString("hid"));t2.setText(result.getString("hname"));t3.setText(result.getString("hsex"));t4.setText(result.getString("h_haddress"));t5.setText(String.valueOf(result.getDouble("harear")));t6.setText(String.valueOf(result.getInt("h_phone")));t7.setText(String.valueOf(result.getInt("hnumber")));t8.setText(result.getString("hpleve"));}myDataBase.close(ps, connection);} catch (SQLException ex) {ex.printStackTrace();}});bOK.addActionListener(e -> {//修改文本框内容再提交String hid=t1.getText();String hname=t2.getText();String hsex=t3.getText();String h_haddress=t4.getText();Double harear= Double.valueOf(t5.getText());Integer h_hpone= Integer.valueOf(t6.getText());Integer hnumber=Integer.valueOf(t7.getText());String hpleve=t8.getText();String hidd=jt.getText();//修复之前身份证号无法更新问题,获取一个旧的Hid,用来进行查找Host host=new Host();host.setHid(hid);host.setHname(hname);host.setHsex(hsex);host.setH_haddress(h_haddress);host.setHarear(harear);host.setH_phone(h_hpone);host.setHnumber(hnumber);host.setHpleve(hpleve);try {OperatorDao.updateAll(host,hidd);} catch (SQLException ex) {ex.printStackTrace();}});}
}

2.更新户头功能设计

更新中根据id获得数据在文本框显示,这个功能也可以将其1写入到OperatorJF中,只不过本人比较摆烂,

所以就写在一起了。

  //通过Id更新数据public static void updateAll(Host h,String jt) throws SQLException {Connection connection = myDataBase.getConnection();PreparedStatement ps = connection.prepareStatement("update t_host set hid=?,hname=?,hsex=?,h_haddress=?,harear=?,h_phone=?,hnumber=?,hpleve=? where hid=?");ps.setString(1, h.getHid());ps.setString(2, h.getHname());ps.setString(3, h.getHsex());ps.setString(4, h.getH_haddress());ps.setDouble(5, h.getHarear());ps.setInt(6, h.getH_phone());ps.setInt(7, h.getHnumber());ps.setString(8, h.getHpleve());ps.setString(9,jt);//修复之前身份证号无法更新问题,第九位应该是旧的Hid,不然查找不到,也就无法更新int f = ps.executeUpdate();System.out.println(f);if (f > 0) {JOptionPane.showMessageDialog(null, "成功更新数据");} else {JOptionPane.showMessageDialog(null, "更新数据失败");}}

好了,户头的所有功能都已实现完毕,其他的增删改查功能也是类似。

JAVA课程设计——农村人口管理系统 D4 功能实现(户头增删改查)相关推荐

  1. java设计火车的类,JAVA课程设计--火车票管理系统

    JAVA课程设计--火车票管理系统 ******************* 实践教学实践教学 ******************* 兰州理工大学兰州理工大学 计算机与通信学院 2013 年秋季学期 ...

  2. java学籍管理系统课设报告,java课程设计学籍管理系统.doc

    java课程设计学籍管理系统.doc 课程设计任务书题目学籍管理系统组员学号组员学号组员学号专业课程JAVA指导教师完成时间2011年9月2011年12月计算机科学系制1课程设计任务书及成绩评定课程设 ...

  3. Java 课程设计--数据库管理系统

    目录 源代码说明 一.源代码地址 二.源代码文件说明 1.关键类说明 2.关键方法说明 参考文献 源代码说明 该文章是对JAVA课程设计-<基于JAVA实现的数据库管理系统> 的源代码说明 ...

  4. 【java项目学习笔记】Java学生管理系统(纯后端基础--增删改查)

    学生管理系统 在一所学校中,对学生人员流动的管理是很麻烦的,本案例要求编写一个学生管理系统,实现对学生信息的添加.删除.修改和查询功能.每个功能的具体要求如下: 系统的首页 用于显示系统所有的操作,并 ...

  5. PHP连接数据库MySQL打造xxx管理系统,实现简单的增删改查功能

    目录 前言 概述 内容 创建数据库表 实现列表 新增用户 删除用户 编辑用户 前言 最近刚学完PHP和Mysql,历时半个多月时间完成了这样一个简单的算是人员管理系统吧,为了加深印象总结一下,还有很多 ...

  6. Python项目:学生管理系统连接MySQL数据库(增删改查、排序、统计、显示所有信息)

    文章目录 一程序功能(Function) 1. 功能概述 2. 思维导图 二.开始实践 战前准备 定义学生管理系统菜单 定义主函数 1.录入学生信息 2.查找学生信息 3.删除学生信息 4.修改学生信 ...

  7. Spring3 MVC+Spring+Spring Jdbc实现的权限管理系统,可以控制到增删改查

    前端框架: Jquery1.6+easyui1.3.1+zTree3.4 后端Java框架:Spring3 MVC+Spring+Spring Jdbc三层架构,大量采用注解 Dao层:通过对Spri ...

  8. Java学习(86)Java集合——案例:宠物猫信息管理(HashSet增删改查)

    案例:宠物猫信息管理(HashSet增删改查) 需求分析 1. 功能需求 2. 属性 3. 方法 创建宠物猫Cat类,定义构造方法,定义get/set方法 主方法内定义宠物猫对象,将宠物猫对象放入Ha ...

  9. 人事管理java 课程设计_数据库+Java课程设计 人事管理系统 (一)

    一.JAVA与数据库的合作 此次开发语言为Java,所用的数据库驱动是mysql-connector-java-5.1.8-bin.jar 第一步   用Java连接MySQL数据库(驱动下载:htt ...

最新文章

  1. python爬虫天气实例scrapy_python爬虫之利用scrapy框架抓取新浪天气数据
  2. linux 退出服务器_Vue实战091:Vue项目部署到nginx服务器
  3. java从磁盘读取图片_java 怎样从磁盘读取图片文件
  4. 在.net下使用WebBrower控件时屏蔽弹出新窗口
  5. 快速上手RaphaelJS--RaphaelJS_Starter翻译(三)
  6. Json.net|NH|Log4net|Test等工具下载地址
  7. 如何:带有Thymeleaf和Spring Boot的Java 8日期和时间
  8. 【渝粤题库】陕西师范大学210015幼儿园社会教育作业(高起专)
  9. 底层实现红黑树_图解:红黑树
  10. C/C++面试题—链表中倒数第k个结点
  11. JavaScript学习笔记:迷宫游戏
  12. android 服务端 servlet webservice,Tomcat 上如何部署Servlet及Android中如何与服务器通信(12页)-原创力文档...
  13. 解决iSlider的一些问题(滑动组件)
  14. [译] 轻松发布私有 App
  15. VS2008SP1下jQuery使用初体验
  16. Spring后处理Bean(BeanPostProcessor 接口)Bean增强
  17. OAF_开发系列18_实现OAF页面跳转setForwardURL / forwardImmediately(案例)
  18. [经验]修改SDI主窗口Title
  19. 服务器显示器分辨率,屏幕分辨率修改
  20. 解密Google Deepmind AlphaGo围棋算法

热门文章

  1. 正则+Python制作一个轻量级接口文档工具
  2. 史上最全最详细的ThreadLocal 使用
  3. ext-3 怎么将PDK的库包添加到CCS工程中
  4. fortify+DVWA靶场和动态IAST审计JAVA靶场
  5. iqooneo3 如何不用vivo账号下载外部应用_Dexibell应用程序软件XMURE新增20个自动伴奏,供VIVO系列产品使用...
  6. xp计算机找不到音量调节,『原创』亲历电脑没有声音完美解决方法 – XP声音修复补丁...
  7. Shopee退货运费是由谁承担?
  8. 安装的客户端程序被360安全卫士当成病毒
  9. windows使用cmd连接ftp使用命令上传(put)和下载文件(mget)
  10. Java文字冒险游戏方案,用木兰编程语言编写文字冒险游戏(前八章)