首先根据数据库的内容创建一个model,赋予所有键名,并获得get和set方法,为了以后检查方便,最好再设置toString方法

package com.gjp.Model;public class Model {private int zwid;// idprivate String flname;// 分类名称private double money;// 金额private String zhangHu;// 账户名称private String createtime;// 创建时间private String description;public int getZwid() {return zwid;}public void setZwid(int zwid) {this.zwid = zwid;}public String getFlname() {return flname;}public void setFlname(String flname) {this.flname = flname;}public double getMoney() {return money;}public void setMoney(double money) {this.money = money;}public String getZhangHu() {return zhangHu;}public void setZhangHu(String zhangHu) {this.zhangHu = zhangHu;}public String getCreatetime() {return createtime;}public void setCreatetime(String createtime) {this.createtime = createtime;}public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}@Overridepublic String toString() {return "Model [zwid=" + zwid + ", flname=" + flname + ", money=" + money + ", zhangHu=" + zhangHu+ ", createtime=" + createtime + ", description=" + description + "]";}}

链接数据库使用到JDBCUtils工具类,这里使用使用工具类进行稍微的修改,因为要存储汉子,utf8格式

package com.gjp.Utils;import javax.sql.DataSource;import org.apache.commons.dbcp.BasicDataSource;public class JDBCUtils {public static final String DRIVER_CLASS_NAME = "com.mysql.jdbc.Driver";public static final String URL = "jdbc:mysql://localhost:3306/gjp?useUnicode=true&characterEncoding=UTF-8";public static final String USERNAME = "root";public static final String PASSWORD = "liuyang";private static BasicDataSource dataSource = new BasicDataSource();static {dataSource.setDriverClassName(DRIVER_CLASS_NAME);dataSource.setUrl(URL);dataSource.setUsername(USERNAME);dataSource.setPassword(PASSWORD);}public static DataSource getDataSource() {return dataSource;}
}

这个程序主要是实现对数据库的增删改查,在Dao层中实现数据库的操作

package com.gjp.Dao;import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;import com.gjp.Model.Model;
import com.gjp.Utils.JDBCUtils;public class ZhangWuDao {QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());public List<Model> selectAll() throws SQLException{String sql = "select * from gjp_zhangwu";   return qr.query(sql, new BeanListHandler<Model>(Model.class));}public List<Model> select(String start,String end) throws SQLException{String sql = "select * from gjp_zhangwu where createtime between ? AND ?";Object[] params = {start,end};return qr.query(sql, new BeanListHandler<Model>(Model.class), params);}public void edit(int id,String flname,Double money,String zhangHu,String time,String des) throws SQLException{String sql = "insert into gjp_zhangwu values(?,?,?,?,?,?)";Object[] param = {id,flname,money,zhangHu,time,des};qr.update(sql, param);}public void delAll() throws SQLException{String sql = "delete from gjp_zhangwu";qr.update(sql);}public void delById(int id) throws SQLException{String sql = "delete from gjp_zhangwu where zwid = ?";qr.update(sql,id);}public void add(String flname,double money,String zhangHu,String time,String des) throws SQLException{String sql = "insert into gjp_zhangwu(flname,money,zhangHu,createtime,description) values (?,?,?,?,?)";Object[] param = {flname,money,zhangHu,time,des};qr.update(sql, param);}}

在Service层中实现对数据库的各种操作

package com.gjp.Service;import java.sql.SQLException;
import java.util.List;import com.gjp.Dao.ZhangWuDao;
import com.gjp.Model.Model;public class ZhangWuService {ZhangWuDao zhangwuDao = new ZhangWuDao();public List<Model> selectAll() throws SQLException{return zhangwuDao.selectAll();}public List<Model> select(String start,String end) throws SQLException{return zhangwuDao.select(start, end);}public void edit(int id,String flname,Double money,String zhangHu,String time,String des) throws SQLException{zhangwuDao.edit(id, flname, money, zhangHu, time, des);}public void delAll() throws SQLException{zhangwuDao.delAll();}public void delById(int id) throws SQLException{zhangwuDao.delById(id);}public void add(String flname,double money,String zhangHu,String time,String des) throws SQLException{zhangwuDao.add(flname, money, zhangHu, time, des);}
}

接下来就是各个界面的具体内容

1.主页面 这里没有什么要说的,就是一个简单的可以选择功能的跳转窗口

package com.gjp.View;import java.awt.EventQueue;import javax.swing.JFrame;
import java.awt.Toolkit;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import java.awt.Font;
import java.awt.Color;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.io.File;
import java.awt.event.ActionEvent;public class Index {private JFrame frame;private final JLabel lblNewLabel = new JLabel("");/*** Launch the application.*/public static void index() {EventQueue.invokeLater(new Runnable() {public void run() {try {Index window = new Index();window.frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the application.*/public Index() {initialize();}/*** Initialize the contents of the frame.*/private void initialize() {frame = new JFrame();frame.setTitle("管家婆记账系统");frame.setResizable(false);frame.setBounds(550, 200, 892, 589);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().setLayout(null);JLabel label = new JLabel("欢迎进入管家婆记账软件");label.setForeground(Color.DARK_GRAY);label.setFont(new Font("宋体", Font.PLAIN, 45));label.setBounds(174, 42, 532, 55);frame.getContentPane().add(label);JButton btnNewButton = new JButton("好的");btnNewButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {Function function = new Function();function.function();frame.dispose();}});btnNewButton.setFont(new Font("宋体", Font.PLAIN, 30));btnNewButton.setBounds(701, 476, 171, 55);frame.getContentPane().add(btnNewButton);lblNewLabel.setIcon(new ImageIcon("F:\\Eclipse_Java\\gjp.jpg"));lblNewLabel.setBounds(0, 0, 885, 553);frame.getContentPane().add(lblNewLabel);}
}

2.查询窗口,这个窗口实现了查询和条件查询,具体的实现过程就是在窗口中加一个JTable插件在其中设置他的model值,条件查询时,修改其中的model即可,注意这个窗口中查出来的内容不能修改。

package com.gjp.View;import java.awt.EventQueue;import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.sound.midi.SysexMessage;
import javax.swing.ImageIcon;
import java.awt.Font;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;import com.gjp.Model.Model;
import com.gjp.Service.ZhangWuService;import java.awt.Color;
import java.awt.Container;import javax.swing.JButton;
import javax.swing.JTable;
import java.awt.event.ActionListener;
import java.awt.event.WindowStateListener;
import java.awt.event.ActionEvent;public class Check {private String[] Names = { "id", "用途", "金额", "账户", "创建时间", "说明" };private JFrame frame;ZhangWuService zhangwu = new ZhangWuService();List<Model> list1 = zhangwu.selectAll();private JTextField textField;private JTextField textField_2;private JTextField textField_3;private JTextField textField_1;private JTextField textField_4;private JTextField textField_5;private Object[][] data = new Object[list1.size()][Names.length];private JTable table;private String s1 = null;private String s2 = null;private String s3 = null;private String s4 = null;private String s5 = null;private String s6 = null;private isNumber isnumber = new isNumber();/*** Launch the application.*/public static void check() {EventQueue.invokeLater(new Runnable() {public void run() {try {Check window = new Check();window.frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the application.* * @throws SQLException*/public Check() throws SQLException {initialize();}/*** Initialize the contents of the frame.* * @throws SQLException*/private void initialize() throws SQLException {frame = new JFrame();frame.setResizable(false);frame.setBounds(550, 200, 892, 589);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().setLayout(null);JLabel label = new JLabel("输入时间筛选:");label.setFont(new Font("宋体", Font.PLAIN, 25));label.setBounds(44, 47, 184, 30);frame.getContentPane().add(label);textField = new JTextField();textField.setFont(new Font("宋体", Font.PLAIN, 20));textField.setBounds(243, 48, 39, 27);frame.getContentPane().add(textField);textField.setColumns(10);JLabel label_1 = new JLabel("年");label_1.setFont(new Font("宋体", Font.PLAIN, 20));label_1.setBounds(280, 50, 32, 25);frame.getContentPane().add(label_1);textField_2 = new JTextField();textField_2.setFont(new Font("宋体", Font.PLAIN, 20));textField_2.setColumns(10);textField_2.setBounds(306, 48, 39, 27);frame.getContentPane().add(textField_2);JLabel label_2 = new JLabel("月");label_2.setForeground(Color.BLACK);label_2.setFont(new Font("宋体", Font.PLAIN, 20));label_2.setBounds(349, 50, 32, 25);frame.getContentPane().add(label_2);textField_3 = new JTextField();textField_3.setFont(new Font("宋体", Font.PLAIN, 20));textField_3.setColumns(10);textField_3.setBounds(371, 48, 39, 27);frame.getContentPane().add(textField_3);JLabel label_3 = new JLabel("日");label_3.setFont(new Font("宋体", Font.PLAIN, 20));label_3.setBounds(412, 50, 32, 25);frame.getContentPane().add(label_3);JLabel lblNewLabel_1 = new JLabel("20");lblNewLabel_1.setFont(new Font("宋体", Font.PLAIN, 20));lblNewLabel_1.setBounds(222, 53, 32, 18);frame.getContentPane().add(lblNewLabel_1);JLabel label_4 = new JLabel("—");label_4.setFont(new Font("宋体", Font.PLAIN, 35));label_4.setForeground(Color.BLACK);label_4.setBounds(435, 52, 46, 18);frame.getContentPane().add(label_4);JLabel label_5 = new JLabel("20");label_5.setFont(new Font("宋体", Font.PLAIN, 20));label_5.setBounds(484, 53, 32, 18);frame.getContentPane().add(label_5);textField_1 = new JTextField();textField_1.setFont(new Font("宋体", Font.PLAIN, 20));textField_1.setColumns(10);textField_1.setBounds(505, 47, 39, 27);frame.getContentPane().add(textField_1);JLabel label_6 = new JLabel("年");label_6.setFont(new Font("宋体", Font.PLAIN, 20));label_6.setBounds(545, 50, 32, 25);frame.getContentPane().add(label_6);textField_4 = new JTextField();textField_4.setFont(new Font("宋体", Font.PLAIN, 20));textField_4.setColumns(10);textField_4.setBounds(565, 47, 39, 27);frame.getContentPane().add(textField_4);JLabel label_7 = new JLabel("月");label_7.setForeground(Color.BLACK);label_7.setFont(new Font("宋体", Font.PLAIN, 20));label_7.setBounds(605, 50, 32, 25);frame.getContentPane().add(label_7);textField_5 = new JTextField();textField_5.setFont(new Font("宋体", Font.PLAIN, 20));textField_5.setColumns(10);textField_5.setBounds(629, 47, 39, 27);frame.getContentPane().add(textField_5);JLabel label_8 = new JLabel("日");label_8.setFont(new Font("宋体", Font.PLAIN, 20));label_8.setBounds(669, 50, 32, 25);frame.getContentPane().add(label_8);JButton button = new JButton("筛选");button.setFont(new Font("宋体", Font.PLAIN, 20));button.setBounds(734, 47, 103, 32);frame.getContentPane().add(button);JScrollPane scrollPane = new JScrollPane();scrollPane.setBounds(0, 143, 874, 401);frame.getContentPane().add(scrollPane);/***这是查询窗口不能修改,重写table中isCellEdittable方法*/table = new JTable() {public boolean isCellEditable(int row, int col) {return false;}};table.setFont(new Font("宋体", Font.PLAIN, 22));table.setBounds(0, 143, 874, 401);frame.getContentPane().add(table);DefaultTableModel model = new DefaultTableModel(query(list1), Names);table.setModel(model);table.setRowHeight(30);JButton button_1 = new JButton("返回");button_1.setFont(new Font("宋体", Font.PLAIN, 20));button_1.setBounds(0, 0, 75, 30);frame.getContentPane().add(button_1);JLabel label_9 = new JLabel("");label_9.setFont(new Font("宋体", Font.PLAIN, 23));label_9.setBounds(494, 88, 184, 42);frame.getContentPane().add(label_9);button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {if (textField.getText().length() <= 1) {s1 = "0" + textField.getText();} else {s1 = textField.getText();}if (textField_1.getText().length() <= 1) {s2 = "0" + textField_1.getText();} else {s2 = textField_1.getText();}if (textField_2.getText().length() <= 1) {s3 = "0" + textField_2.getText();} else {s3 = textField_2.getText();}if (textField_3.getText().length() <= 1) {s4 = "0" + textField_3.getText();} else {s4 = textField_3.getText();}if (textField_4.getText().length() <= 1) {s5 = "0" + textField_4.getText();} else {s5 = textField_4.getText();}if (textField_5.getText().length() <= 1) {s6 = "0" + textField_5.getText();} else {textField_5.getText();}if(isnumber.isNumber(s1) && isnumber.isNumber(s2) && isnumber.isNumber(s3) && isnumber.isNumber(s4) && isnumber.isNumber(s5) && isnumber.isNumber(s6)){String start = "20" + s1 + "-" + s3 + "-" + s4;String end = "20" + s2 + "-" + s5 + "-" + s6;if ("".equals(textField.getText()) && "".equals(textField_1.getText()) && "".equals(textField_2.getText())&& "".equals(textField_3.getText()) && "".equals(textField_4.getText()) && "".equals(textField_5.getText())){for(int p = 0;p < list1.size();p++){model.removeRow(0);}for(int i = 0;i < list1.size();i++){model.addRow(data[i]);}}   else if ("".equals(textField.getText()) || "".equals(textField_1.getText()) || "".equals(textField_2.getText())|| "".equals(textField_3.getText()) || "".equals(textField_4.getText()) || "".equals(textField_5.getText())) {label_9.setText("时间格式不正确!");} else {int t1 = Integer.parseInt(s1);int t2 = Integer.parseInt(s3);int t3 = Integer.parseInt(s4);int t4 = Integer.parseInt(s2);int t5 = Integer.parseInt(s5);int t6 = Integer.parseInt(s6);if (t1 <= 0 || t1 > 99 || t2 > 12 || t2 <= 0 || t3 <= 0 || t3 > 31 || t4 <= 0 || t4 > 99 || t5 > 12|| t5 <= 0 || t6 <= 0 || t6 > 31) {label_9.setText("时间格式不正确!");} else {if (t4 < t1) {label_9.setText("时间格式不正确!");} else {if (t4 == t1 && t5 < t2) {label_9.setText("时间格式不正确!");} else {if (t1 == t4 && t2 == t5 && t6 < t3) {label_9.setText("时间格式不正确!");} else {for(int p = 0;p < list1.size();p++){model.removeRow(0);  //将表格清空,每删除一行原本的下一行就会变成第一行,所以每次删除的都是第一行}label_9.setText("");model.fireTableDataChanged() ;try {List<Model> list2 = zhangwu.select(start, end);//System.out.println(list2);for(int i = 0;i < list2.size();i++){model.addRow(data[i]);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}}System.out.println(start + "\n" + end);}else{label_9.setText("请输入数字");}}});scrollPane.setViewportView(table);JLabel lblNewLabel = new JLabel("");lblNewLabel.setIcon(new ImageIcon("F:\\Eclipse_Java\\gjp.jpg"));lblNewLabel.setBounds(0, 0, 885, 553);frame.getContentPane().add(lblNewLabel);}public Object[][] query(List<Model> list) throws SQLException {for (int i = 0; i < list.size(); i++) {for (int j = 0; j < Names.length; j++) {data[i][0] = list.get(i).getZwid();data[i][1] = list.get(i).getFlname();data[i][2] = list.get(i).getMoney();data[i][3] = list.get(i).getZhangHu();data[i][4] = list.get(i).getCreatetime();data[i][5] = list.get(i).getDescription();}}return data;}
}

3.删除 根据id值删除,在这里我封装了一个类isNumber,用来判断id值是否为int类型

package com.gjp.View;import java.awt.EventQueue;
import java.awt.Font;
import java.sql.SQLException;
import java.util.List;import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;import com.gjp.Model.Model;
import com.gjp.Service.ZhangWuService;import javax.swing.JButton;
import javax.swing.JScrollPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Color;public class Delete {private JFrame frame;private JTable table;private JLabel lblid;private JLabel lblId;private JTextField textField;private String[] Names = { "id", "用途", "金额", "账户", "创建时间", "说明" };ZhangWuService zhangwu = new ZhangWuService();List<Model> list1 = zhangwu.selectAll();Object[][] data = new Object[list1.size()][Names.length];private JLabel label_1;private isNumber isnumber = new isNumber();private static int con = 0;/*** Launch the application.*/public static void delete() {EventQueue.invokeLater(new Runnable() {public void run() {try {Delete window = new Delete();window.frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the application.* * @throws SQLException*/public Delete() throws SQLException {initialize();}/*** Initialize the contents of the frame.* * @throws SQLException*/private void initialize() throws SQLException {frame = new JFrame();frame.setResizable(false);frame.setBounds(550, 200, 892, 589);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().setLayout(null);table = new JTable();table.setFont(new Font("宋体", Font.PLAIN, 22));table.setBounds(0, 113, 874, 431);table.setRowHeight(30);frame.getContentPane().add(table);DefaultTableModel model = new DefaultTableModel(query(list1), Names);table.setModel(model);lblid = new JLabel("请输入id删除");lblid.setFont(new Font("宋体", Font.PLAIN, 25));lblid.setBounds(34, 26, 176, 34);frame.getContentPane().add(lblid);lblId = new JLabel("id:");lblId.setFont(new Font("宋体", Font.PLAIN, 23));lblId.setBounds(280, 53, 72, 27);frame.getContentPane().add(lblId);textField = new JTextField();textField.setFont(new Font("宋体", Font.PLAIN, 23));textField.setBounds(316, 58, 86, 24);frame.getContentPane().add(textField);textField.setColumns(10);JButton button = new JButton("删除");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {String ids = textField.getText();int min = (Integer) model.getValueAt(0, 0);int max =  (Integer) model.getValueAt(list1.size()-1, 0);
//              System.out.println(isnumber.isNumber(ids));if (isnumber.isNumber(ids)) {int id = Integer.parseInt(ids);if (id < min || id > max) {label_1.setText("请输入有效id!");} else {label_1.setText("");try {List list2 = zhangwu.selectAll();for(int i = 0;i < list2.size();i++){model.removeRow(0);System.out.println("yes");}zhangwu.delById(id);list1 = zhangwu.selectAll();data = query(list1);System.out.println(list1);for(int j = 0;j < list1.size();j++){model.addRow(data[j]);}} catch (SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}}else{label_1.setText("请输入数字!");}}});button.setFont(new Font("宋体", Font.PLAIN, 23));button.setBounds(431, 51, 123, 31);frame.getContentPane().add(button);JScrollPane scrollPane = new JScrollPane();scrollPane.setBounds(858, 113, 16, 431);frame.getContentPane().add(scrollPane);label_1 = new JLabel("");label_1.setForeground(Color.RED);label_1.setFont(new Font("宋体", Font.PLAIN, 24));label_1.setBounds(34, 73, 210, 27);frame.getContentPane().add(label_1);JLabel label = new JLabel("");label.setIcon(new ImageIcon("F:\\Eclipse_Java\\gjp.jpg"));label.setBounds(0, 0, 885, 553);frame.getContentPane().add(label);}public Object[][] query(List<Model> list) throws SQLException {for (int i = 0; i < list.size(); i++) {for (int j = 0; j < Names.length; j++) {data[i][0] = list.get(i).getZwid();data[i][1] = list.get(i).getFlname();data[i][2] = list.get(i).getMoney();data[i][3] = list.get(i).getZhangHu();data[i][4] = list.get(i).getCreatetime();data[i][5] = list.get(i).getDescription();}}return data;}
}

4.修改 先实现查询功能,查询出来后直接在table中修改

package com.gjp.View;import java.awt.EventQueue;
import java.awt.Font;
import java.sql.SQLException;
import java.util.List;import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;import com.gjp.Model.Model;
import com.gjp.Service.ZhangWuService;import javax.swing.JButton;
import javax.swing.JScrollPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;public class Edit {private String[] Names = { "id", "用途", "金额", "账户", "创建时间", "说明" };private JFrame frame;ZhangWuService zhangwu = new ZhangWuService();List<Model> list = zhangwu.selectAll();private Object[][] data = new Object[list.size()][Names.length];private JTable table;private Object[][] obj = new Object[list.size()][Names.length];public static void edit() {EventQueue.invokeLater(new Runnable() {public void run() {try {Edit window = new Edit();window.frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the application.* @throws SQLException */public Edit() throws SQLException {initialize();}/*** Initialize the contents of the frame.* @throws SQLException */private void initialize() throws SQLException {frame = new JFrame();frame.setResizable(false);frame.setBounds(550, 200, 892, 589);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().setLayout(null);table = new JTable() {public boolean isCellEditable(int row, int col) {if(row >= 0 && row < table.getRowCount() && col == 0){return false;}return true;}};table.setFont(new Font("宋体", Font.PLAIN, 22));table.setBounds(0, 0, 874, 481);frame.getContentPane().add(table);table.setRowHeight(30);DefaultTableModel model = new DefaultTableModel(query(), Names);table.setModel(model);JButton btnNewButton = new JButton("保存");btnNewButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {    try {zhangwu.delAll();} catch (SQLException e2) {// TODO Auto-generated catch blocke2.printStackTrace();}for(int i = 0;i < list.size();i++){for(int j = 0;j < Names.length;j++){obj[i][j] = model.getValueAt(i, j);System.out.println(obj[i][j]);}try {zhangwu.edit(Integer.parseInt(obj[i][0].toString()), obj[i][1].toString(), Double.parseDouble(obj[i][2].toString()) , obj[i][3].toString() , obj[i][4].toString(), obj[i][5].toString());} catch (NumberFormatException | SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}   }});btnNewButton.setFont(new Font("宋体", Font.PLAIN, 25));btnNewButton.setBounds(332, 494, 129, 37);frame.getContentPane().add(btnNewButton);JLabel lblNewLabel = new JLabel("New label");lblNewLabel.setBounds(0, 0, 885, 553);lblNewLabel.setIcon(new ImageIcon("F:\\Eclipse_Java\\gjp.jpg"));frame.getContentPane().add(lblNewLabel);JScrollPane scrollPane = new JScrollPane();scrollPane.setBounds(858, 0, 16, 481);frame.getContentPane().add(scrollPane);}public Object[][] query() throws SQLException {for (int i = 0; i < list.size(); i++) {for (int j = 0; j < Names.length; j++) {data[i][0] = list.get(i).getZwid();data[i][1] = list.get(i).getFlname();data[i][2] = list.get(i).getMoney();data[i][3] = list.get(i).getZhangHu();data[i][4] = list.get(i).getCreatetime();data[i][5] = list.get(i).getDescription();}}return data;}
}

WindowsBuilder管家婆记账软件相关推荐

  1. java连接mongodb的jar包_Java实战之管家婆记账系统(1)——项目简述

    项目简述: 该项目是一个通过JavaFX实现的管家婆记账系统,具有记账的功能. 使用软件: IntelliJ IDEA 2018.3.5(Ultim ate Edition):编写Java项目代码. ...

  2. 简易的记账软件设计与实现

    1.创建数据库 /* SQLyog Ultimate v12.4.0 (64 bit) MySQL - 5.5.49 ***************************************** ...

  3. 进销存记账软件十大品牌合集,看看哪一款适合你

    随着管理成本的提高,加上信息技术的发展,各行各业都要求应用专业的技术软件来提高管理效率,中小商户也不例外. 过往的手工记账已经满足不了需求,进销存记账软件应运而生. 进销存记账软件是时代的产物,也是中 ...

  4. 【java基础】第31天——管家婆记账系统项目

    今日内容介绍 1.管家婆项目 01项目训练目标 * A: 项目训练目标* a: 项目目标* 综合运用前面所学习的知识点* 熟练View层.Service层.Dao层之间的方法相互调用操作.* 熟练db ...

  5. 奚记--最简洁的记账软件

    最近几天一直在开发个人的第一个应用--奚记.在昨天我的第一个Android应用终于在豌豆荚平台上架了,真的是激动万分啊,今天就不要脸的来推广介绍下我的软件,让各位见笑我的幼稚的作品了. 奚记,是一款最 ...

  6. usb管控软件_记账软件新外设:PUPUPULA 智能存钱罐登陆众筹

    小朋友的金钱观念需要从小开始培养.但为了方便记账而专门买一台手机又显得有些过头.有没有什么办法可以在培养金钱观念的同时又可以让家长轻松管控呢? 于是就有了这么一款 PUPUPULA 智能「存钱罐」. ...

  7. 家庭记账软件 —— Java

    <家庭记账软件> 模拟是实现一个基于文本界面的<家庭记账软件> 该程序是全网最全Java零基础入门教程的项目一,可以直接查看p127 掌握逐步的编程技巧和调试技巧 主要涉及以下 ...

  8. 表格过滤器_不用记账软件也可以记录支出明细,这个在线协同表格很方便

    像我们这种中小团队,以前就用 Excel 来记录团队日常的一些支出情况,虽然有很多模板可以套用,但感觉还是有些不便之处,比如在表格里无法记录太多文字:添加发票凭证也不方便:对于不同数据的切换查看也缺乏 ...

  9. Goalng小demo一:家庭收支记账软件项目

    项目开发流程说明 项目需求说明 模拟实现基于文本界面的<家庭记账软件> 该软件能够记录家庭的收入.支出,并能够打印收支明细表 项目的界面 项目代码实现 实现基本功能(先使用面向过程,后面改 ...

最新文章

  1. C++函数模板(二)引用
  2. 腾讯面试官:如何停止一个正在运行的线程?我一脸蒙蔽。。。
  3. 讨论.NET Core 配置对GC 工作模式与内存的影响
  4. 解决保存快照失败后redis无法写入的问题( Redis is configured to save RDB snapshots)
  5. silverlightLogo动画
  6. Spring5.0(2)--- Framework 5 FAQ
  7. Selenium 编写第一个自动化脚本
  8. AcWing 4240. 青蛙(最短路 or 最小生成树)
  9. python︱Anaconda安装、简介(安装报错问题解决、Jupyter Notebook)
  10. 寒假学习报告 第一周 1.18
  11. Python修改文件后缀名
  12. JavaScript注释的运用
  13. 日志查找常用命令-超实用
  14. c 易语言置入代码6,易语言置入代码 , 谁碰到这种情况_精易论坛
  15. Xuxiang Qi--Deep Learning based Semantic Labelling of 3D Point Cloud in Visual SLAM
  16. Angular实现微博发布功能
  17. python表白女神
  18. Spark中组件Mllib的学习16之分布式行矩阵的四种形式
  19. 射频混频器matlab,一个很多射频/天线工程师不知道的神奇网站
  20. ❤️2021 全国大学生数学建模❤️完整B 题思路分析

热门文章

  1. ios 贝塞尔曲线 颜色填充_iOS,贝塞尔曲线(UIBezierPath)
  2. 微信公众号缓存严重的问题
  3. 对如何学习Java的一点点看法
  4. 黑龙江电信烽火MR820_LK融合机_HI3798MV310_原机备份和卡刷包
  5. 华为linux版本wifi驱动,HuaWei华为
  6. 山东教师教育网博客空间--我的空间
  7. HDU6560 The Hermit(思维)
  8. STP 3 - 生成树协议中4个guard 和 3个fast加一个filter
  9. 合成孔径雷达干涉测量InSAR数据处理、地形三维重建、形变信息提取、监测等 实践技术应用
  10. NET开发资源站点和部分秀.NET开源项目