日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

基于javaJDBC技术的账务管理系统(思路+代码)

發布時間:2023/12/31 windows 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于javaJDBC技术的账务管理系统(思路+代码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

技術要點:

1.JDBC工具類的搭建

public class JDBCutils {private static BasicDataSource datasource = new BasicDataSource();static {datasource.setDriverClassName("com.mysql.cj.jdbc.Driver");datasource.setUrl("jdbc:mysql://localhost:3306/zb?serverTimezone=UTC");datasource.setUsername("root");datasource.setPassword("123456");datasource.setInitialSize(10);datasource.setMaxIdle(8);datasource.setMinIdle(3);}public static DataSource getdatasource() {return datasource;} }

?

2.數據庫增刪改查四大功能熟練使用

3.數據IO流的掌握

4.確定幾個層級之間的關系與連通關系(如下圖所示)

步驟一:環境的搭建及數據庫的建立

需要用到的幾個包(commons-dbcp,commons-dbutils,commons-pool,mysql-connector-java)

需要在mysql中建立以個數據庫,同時建立一張表格來存儲用戶數據,表格屬性包括賬務名、賬務類別、金額、轉出賬戶、創建時間、具體描述。

步驟二:模塊的構建

按照上述圖需要搭建4個模塊,不同模塊有不同的分工,可以使得任務完成更加順暢,大的項目工程更加需要這種分包合作。

步驟三:javaBean

JavaBean是指的是Java中的類,該類中的成員變量與數據庫表中的字段相對應(變量名對應數據庫表字段名、變量數據類型對應數據庫表字段類型),并提供空參數構造方法、set、get方法。

此后我們在調用方法時的對象全部來自于這個javabean類對象,在本系統中構建的是ZhangWu對象,包含已經創建好的數據庫的所有屬性(步驟一所提及)都在這個類對象ZhangWu中。

public class ZhangWu {private int zwid;private String flname;private double money;private String ZhangHu;private String createtime;private String description;public ZhangWu(int zwid, String flname, double money, String zhangHu, String createtime, String description) {super();this.zwid = zwid;this.flname = flname;this.money = money;ZhangHu = zhangHu;this.createtime = createtime;this.description = description;}public ZhangWu() {}@Overridepublic String toString() {return "ZhangWu [zwid=" + zwid + ", flname=" + flname + ", money=" + money + ", ZhangHu=" + ZhangHu+ ", createtime=" + createtime + ", description=" + 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) {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;}}

步驟四:View視圖層搭建

主要用于搭建運行界面顯示,是與用戶進行交互的直接平臺。主要構建四大功能:添加賬務、編輯賬務、刪除賬務、查詢賬務,最后加上一個退出系統的功能。其中查詢賬務分成“查詢所有賬務”和“條件查詢”兩個功能。

最后視圖層需要與Controller控制層建立連接。

public class MainView {private static Controllerpart cont = new Controllerpart();public void run() {Scanner sc = new Scanner(System.in);while(true) {System.out.print("---------GJP賬務系統----------");System.out.println("1.添加賬務 2.編輯賬務 3.刪除賬務 4.查詢賬務 5.退出系統");System.out.println("請輸入需要操作的功能序號");int choose = sc.nextInt();switch(choose) {case 1:addZhangWu();break;case 2:eidtZhangWu();break;case 3:deleteZhangWu();break;case 4:selectZhangWu();break;case 5:System.exit(0);break;default:System.out.println("請重新輸入正確的序號");}?? ?}}private void deleteZhangWu() {// TODO Auto-generated method stubScanner sc = new Scanner(System.in);System.out.println("請輸入需要刪除的賬務ID");cont.deleteZhangWu(sc.nextInt());System.out.println("刪除成功");}private void eidtZhangWu() {// TODO Auto-generated method stubScanner sc = new Scanner(System.in);System.out.println("選擇需要修改的賬務ID");int zwid = sc.nextInt();System.out.println("輸入分類名稱");String flname = sc.next();System.out.println("請輸入金額");double money = sc.nextDouble();System.out.println("請輸入賬戶");String zhangHu = sc.next();System.out.println("請輸入時間");String createtime = sc.next();System.out.println("請輸入具體描述");String description = sc.next();ZhangWu zw = new ZhangWu(zwid, flname, money, zhangHu, createtime, description);cont.editZhangWu(zw);System.out.println("賬務更新成功");}private void addZhangWu() {// TODO Auto-generated method stubSystem.out.println("選擇添加的賬務,輸入如下內容");Scanner sc = new Scanner(System.in);System.out.println("輸入分類名稱");String flname = sc.next();System.out.println("請輸入金額");double money = sc.nextDouble();System.out.println("請輸入賬戶");String zhangHu = sc.next();System.out.println("請輸入時間");String createtime = sc.next();System.out.println("請輸入具體描述");String description = sc.next();ZhangWu zw = new ZhangWu(0, flname, money, zhangHu, createtime, description);cont.addZhangWu(zw);System.out.println("賬務添加成功");}public void selectZhangWu() {// TODO Auto-generated method stubSystem.out.println("1.查詢所有賬務 2.條件查詢");Scanner op = new Scanner(System.in);int choose = op.nextInt();switch(choose) {case 1:selectAll();break;case 2:select();break;}}public void select() {// TODO Auto-generated method stubSystem.out.println("選擇條件查詢,輸入日期格式:xxxx-xx-xx");Scanner sc = new Scanner(System.in);System.out.println("請輸入查詢的起始時間");String startDate = sc.nextLine();System.out.println("請輸入查詢的結束時間");String endDate = sc.nextLine();List<ZhangWu> list = cont.select(startDate, endDate);if(list.size()!=0)print(list);elseSystem.out.println("沒有查詢到需要的數據");}private void selectAll() {// TODO Auto-generated method stubList<ZhangWu> list = cont.selectAll();if(list.size()!=0)print(list);elseSystem.out.println("--------沒有查詢到需要的數據---------");}public void print(List<ZhangWu> list) {System.out.println("ID\t類別\t\t賬戶\t\t金額\t\t時間\t\t說明");for (ZhangWu zw : list) {System.out.println(zw.getZwid() + "\t" + zw.getFlname() + "\t\t"+ zw.getZhangHu() + "\t\t" + zw.getMoney() + "\t\t"+ zw.getCreatetime() + "\t" + zw.getDescription());}} }

步驟五、六:Controller控制層搭建與Service服務層搭建

此處不做詳細處理,主要是在其中寫入控制層與服務層以及dao數據訪問層的連通函數(主要是前臺方法的重寫調用)。

public class Controllerpart {private static Servicepart ser = new Servicepart();public void editZhangWu(ZhangWu zw) {ser.editZhangWu(zw);}public List<ZhangWu> addZhangWu(ZhangWu zw){return ser.addZhangWu(zw);}public ?List<ZhangWu> select(String startDate,String endDate){return ser.select(startDate,endDate);}public ?List<ZhangWu> selectAll() {return ser.selectAll();}public void deleteZhangWu(int zwid) {// TODO Auto-generated method stubser.deleteZhangWu(zwid);} }

?

public class Servicepart {private static Daopart dao = new Daopart();public List<ZhangWu> selectAll() {// TODO Auto-generated method stubreturn dao.selectAll();}public List<ZhangWu> select(String startDate, String endDate) {// TODO Auto-generated method stubreturn dao.select(startDate,endDate);}public List<ZhangWu> addZhangWu(ZhangWu zw) {// TODO Auto-generated method stubreturn dao.addZhangWu(zw);}public void editZhangWu(ZhangWu zw) {// TODO Auto-generated method stubdao.editZhangWu(zw);}public void deleteZhangWu(int zwid) {// TODO Auto-generated method stubdao.deleteZhangWu(zwid);}


??

步驟七:dao數據訪問層搭建

數據訪問層用于與數據庫連接,通過用戶反饋的操作來調用數據庫數據來完成操作。主要掌握數據庫語句的使用,以及jdbc QueryRunner類的使用。

QueryRunner.query用于查詢數據庫;QueryRunner.update用于修改更新數據庫

public class Daopart {private QueryRunner qr = new QueryRunner(JDBCutils.getdatasource());public List<ZhangWu> selectAll() {// TODO Auto-generated method stubtry {String sql = "select * from zbzhangwu";List<ZhangWu> list = qr.query(sql,new BeanListHandler<ZhangWu>(ZhangWu.class));return list;}catch(SQLException ex) {System.out.println(ex);throw new RuntimeException("查詢失敗");}}public List<ZhangWu> select(String startDate, String endDate) {// TODO Auto-generated method stubtry {String sql = "select * from zbzhangwu where createtime between ? and ?";Object[] params = {startDate,endDate};List<ZhangWu> list = qr.query(sql, new BeanListHandler<ZhangWu>(ZhangWu.class),params);return list;}catch(SQLException ex) {System.out.println(ex);throw new RuntimeException("查詢失敗");}}public List<ZhangWu> addZhangWu(ZhangWu zw) {// TODO Auto-generated method stubtry {String sql = "insert into zbzhangwu (flname,money,zhangHu,createtime,description)values(?,?,?,?,?)";Object[] params = {zw.getFlname(),zw.getMoney(),zw.getZhangHu(),zw.getCreatetime(),zw.getDescription()};qr.update(sql, params);return null;}catch(SQLException ex) {System.out.println(ex);throw new RuntimeException("賬務添加失敗");}}public void editZhangWu(ZhangWu zw) {// TODO Auto-generated method stubtry {String sql = "update zbzhangwu set flname=?,money=?,zhangHu=?,createtime=?,description=? where zwid=?";Object[] params = {zw.getFlname(),zw.getMoney(),zw.getZhangHu(),zw.getCreatetime(),zw.getDescription(),zw.getZwid()};qr.update(sql, params);}catch(SQLException ex) {System.out.println(ex);throw new RuntimeException("數據更新失敗");}}public void deleteZhangWu(int zwid) {// TODO Auto-generated method stubtry {String sql = "delete from zbzhangwu where zwid=?";qr.update(sql,zwid);}catch(SQLException ex) {System.out.println(ex);throw new RuntimeException("刪除操作失敗");}}}

?

總結

以上是生活随笔為你收集整理的基于javaJDBC技术的账务管理系统(思路+代码)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。