管家婆項目詳細代碼-Java基礎班終於結束

項目內容就不詳細介紹了,主要鍛鍊數據庫增刪改查,及項目邏輯調用。
代碼有點多,按照package順序,運行包–視圖包–服務包–數據庫操作包–工具包–事物對象包
以及SQL語句。
運行類

package cn.gjp.app;

import cn.gjp.view.MainView;

/*
 * 運行管家婆的主方法
 */
public class MainApp {
	public static void main(String[] args) {
		new MainView().run();
	}
}

視圖類

package cn.gjp.view;

import java.util.List;
import java.util.Scanner;

import cn.gjp.domain.ZhangWu;
import cn.gjp.service.ZhangWuService;

/*
 * 依賴service
 */
public class MainView {
	private ZhangWuService zws = new ZhangWuService();
	
	/*
	 * 實現鍵盤輸入,選擇相應功能調用
	 */
	public void run(){
		Scanner sc = new Scanner(System.in);
		while(true){
			System.out.println("---------------管家婆家庭記賬軟件---------------");
			System.out.println("1.添加賬務 2.編輯賬務 3.刪除賬務 4.查詢賬務 5.退出系統");
			System.out.println("請輸入要操作的功能序號[1-5]:");
			
			int choose = sc.nextInt();
			
			switch(choose){
			case 1:
				//選擇添加賬務
				addZhangWu();
				break;
			case 2:
				//選擇編輯
				editZhangWu();
				break;
			case 3:
				//選擇刪除賬務
				deleteZhangWu();
				break;
			case 4:
				//選擇查詢賬務
				selectZhangWu();
				break;
			case 5:
				//退出系統
				System.exit(0);
				break;
			}
		}
	}
	/*
	 * 刪除賬務
	 */
	public void deleteZhangWu(){
		ZhangWu zw = new ZhangWu();
		Scanner sc = new Scanner(System.in);
		System.out.println("請輸入要刪除的ID:");
		zw.setZwid(sc.nextInt());
		
		boolean b = new ZhangWuService().deleteZhangWu(zw);
		if(b){
			System.out.println("刪除成功!");
		}
	}
	
	/*
	 * 編輯賬務
	 */
	public void editZhangWu(){
		ZhangWu zw = new ZhangWu();
		Scanner sc = new Scanner(System.in);
		System.out.println("請輸入要編輯的ID:");
		zw.setZwid(sc.nextInt());
		System.out.println("請輸入類別:");
		zw.setFlname(sc.next());
		System.out.println("請輸入花費:");
		zw.setMoney(sc.nextDouble());
		System.out.println("請輸入賬戶:");
		zw.setZhangHu(sc.next());
		System.out.println("請輸入時間:");
		zw.setCreatetime(sc.next());
		System.out.println("請輸入說明:");
		zw.setDescription(sc.next());
		
		boolean b = new ZhangWuService().editZhangWu(zw);
		if(b){
			System.out.println("編輯成功!");
		}
	}
	
	/*
	 * 添加賬務功能
	 */
	public void addZhangWu(){
		ZhangWu zw = new ZhangWu();
		Scanner sc = new Scanner(System.in);
		System.out.println("請輸入類別:");
		zw.setFlname(sc.next());
		System.out.println("請輸入花費:");
		zw.setMoney(sc.nextDouble());
		System.out.println("請輸入賬戶:");
		zw.setZhangHu(sc.next());
		System.out.println("請輸入時間:");
		zw.setCreatetime(sc.next());
		System.out.println("請輸入說明:");
		zw.setDescription(sc.next());
		
		boolean b = new ZhangWuService().addZhangWu(zw);
		if(b){
			System.out.println("添加成功!");
		}
	}
	
	/*
	 * 查詢賬務功能
	 */
	public void selectZhangWu(){
		System.out.println("請輸入查詢方式  1:查詢所有  2:條件查詢");
		Scanner sc = new Scanner(System.in);
		int i = sc.nextInt();
		switch(i){
		case 1:
			List<ZhangWu> list1 = new ZhangWuService().selectAll();
			print(list1);
			break;
		case 2:
			Scanner sc1 = new Scanner(System.in);
			System.out.println("請輸入起始時間:");
			String starttime = sc1.nextLine();
			System.out.println("請輸入結束時間:");
			String endtime = sc1.nextLine();
			List<ZhangWu> list2 = new ZhangWuService().select(starttime,endtime);
			print(list2);
			break;
		}
	}
	public void print(List<ZhangWu> list){
		System.out.println("編號\t"+"名稱\t"+"花費\t"+"賬戶\t"+"時間\t"+"說明\t");
		for (ZhangWu zw : list) {
			System.out.println(zw.getZwid()+"\t"+zw.getFlname()+"\t"+zw.getMoney()+"\t"+zw.getZhangHu()+"\t"+zw.getCreatetime()+"\t"+zw.getDescription());
		}
	}
}

服務類

package cn.gjp.service;

import java.util.List;
import java.util.Scanner;

import cn.gjp.dao.ZhangWuDao;
import cn.gjp.domain.ZhangWu;
import cn.gjp.view.MainView;

/*
 * 用於傳遞參數,依賴zhangwudao
 */
public class ZhangWuService {
	private  ZhangWuDao zwd = new ZhangWuDao();
	/*
	 * 刪除賬務
	 */
	public boolean deleteZhangWu(ZhangWu zw){
		return new ZhangWuDao().deleteZhangWu(zw);
	}
	
	/*
	 * 編輯賬務
	 */
	public boolean editZhangWu(ZhangWu zw){
		return new ZhangWuDao().editZhangWu(zw);
	}
	/*
	 * 添加賬務
	 */
	public boolean addZhangWu(ZhangWu zw){
		return new ZhangWuDao().addZhangWu(zw);
	}
	
	/*
	 * 查詢所有賬務信息,調用dao查詢數據庫
	 */
	public List<ZhangWu> selectAll(){
		List<ZhangWu> list = new ZhangWuDao().selectAll();
		return list;
	}
	
	/*
	 * 條件查詢賬務信息
	 */
	public List<ZhangWu> select(String starttime,String endtime){
		List<ZhangWu> list =  new ZhangWuDao().select(starttime,endtime);
		return list;
	}
}

操作數據庫類

package cn.gjp.dao;


import java.sql.SQLException;
import java.util.List;

import javax.management.RuntimeErrorException;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import cn.gjp.domain.ZhangWu;
import cn.gjp.tools.JDBCUtils;

/*
 * 添加queryrunner對象,用來操作數據庫數據。
 */
public class ZhangWuDao {
	QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
	/*
	 * 刪除賬務
	 */
	public boolean deleteZhangWu(ZhangWu zw){
		String sql = "DELETE FROM gjp_zhangwu WHERE zwid=?";
		try{
		qr.update(sql,zw.getZwid());
		return true;
		}catch (SQLException sex){
			System.out.println(sex);
			throw new RuntimeException("刪除失敗");
		}
	}
	
	/*
	 * 編輯賬務
	 */
	public boolean editZhangWu(ZhangWu zw){
		String sql = "UPDATE gjp_zhangwu SET flname=?,money=?,zhangHu=?,createtime=?,description=? WHERE zwid = ?";
		//String sql = "update gjp_zhangwu set flname=?, money=?,zhanghu=?,createtime=?,description=? where zwid=?";
		Object[] parms = {zw.getFlname(),zw.getMoney(),zw.getZhangHu(),zw.getCreatetime(),zw.getDescription(),zw.getZwid()};
		try{
		qr.update(sql, parms);
		return true;
		}catch (SQLException sex){
			System.out.println(sex);
			throw new RuntimeException("編輯失敗");
		}
	}
	
	/*
	 * 添加賬務
	 */
	public boolean addZhangWu(ZhangWu zw){
		String sql = "insert into gjp_zhangwu(flname,money,zhangHu,createtime,description) values(?,?,?,?,?)";
		Object[] parms = {zw.getFlname(),zw.getMoney(),zw.getZhangHu(),zw.getCreatetime(),zw.getDescription()};
		try{
		qr.update(sql, parms);
		return true;
		}catch (SQLException sex){
			System.out.println(sex);
			throw new RuntimeException("添加失敗");
		}
	}
	
	/*
	 * 查詢所有賬務信息
	 */
	public List<ZhangWu> selectAll(){
		try{
			String sql = "SELECT * FROM gjp_zhangwu";
			List<ZhangWu> list = qr.query(sql,new BeanListHandler<>(ZhangWu.class));
			return list;
		}catch (Exception e) {
			System.out.println(e);
			throw new RuntimeException("查詢失敗");
		}
	}
	
	/*
	 * 條件查詢賬務信息
	 */
	public List<ZhangWu> select(String starttime,String endtime){
		try{
			String sql = "SELECT * FROM gjp_zhangwu WHERE createtime BETWEEN ? AND ?";
			Object[] parms = {starttime,endtime};
			List<ZhangWu> list = qr.query(sql,new BeanListHandler<>(ZhangWu.class),parms);
			return list;
		}catch (Exception e) {
			System.out.println(e);
			throw new RuntimeException("查詢失敗");
		}
	}
}

賬務數據類型類

package cn.gjp.domain;
/*
 * 封裝數據庫中數據爲javabean類對象
 */
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) {
		this.zwid = zwid;
		this.flname = flname;
		this.money = money;
		this.zhangHu = zhangHu;
		this.createtime = createtime;
		this.description = description;
	}
	public ZhangWu(){}

	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;
	}

	public String toString() {
		return "ZhangWu [zwid=" + zwid + ", flname=" + flname + ", money="
				+ money + ", zhangHu=" + zhangHu + ", createtime=" + createtime
				+ ", description=" + description + "]";
	}
	
	
	
}

數據庫連接工具類,注意我的數據庫連接端口號是3307,密碼是123456

package cn.gjp.tools;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSource;

/*
 * 數據庫連接工具類
 * 連接池,dbcp
 */
public class JDBCUtils {
	private static BasicDataSource datasource = new BasicDataSource();
	
	//靜態代碼塊實現必要的參數設置
	static{
		datasource.setDriverClassName("com.mysql.jdbc.Driver");
		datasource.setUrl("jdbc:mysql://localhost:3307/gjp");
		datasource.setUsername("root");
		datasource.setPassword("123456");
		
		datasource.setMaxActive(10);
		datasource.setMaxIdle(5);
		datasource.setMinIdle(3);
		datasource.setInitialSize(8);
	}
	public static DataSource getDataSource(){
		return datasource;
	}
}

SQL

CREATE DATABASE gjp;

USE gjp;

CREATE TABLE gjp_zhangwu(
	zwid INT PRIMARY KEY AUTO_INCREMENT,
	flname VARCHAR(200),
	money DOUBLE,
	zhangHu VARCHAR(200),
	createtime DATE,
	description VARCHAR(100)
);

-- insert into gjp_zhangwu(flname,money,zhanghu,createtime,description) values (,,,,)
INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description) VALUES (1,'喫飯支出',247,'交通銀行','2016-03-02','家庭聚餐');
INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description) VALUES (2,'工資收入',12345,'現金','2016-03-15','開工資了');
INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description) VALUES (3,'服裝支出',1998,'現金','2016-04-02','買衣服');
INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description) VALUES (4,'喫飯支出',325,'現金','2016-06-18','朋友聚餐');
INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description) VALUES (5,'股票收入',8000,'工商銀行','2016-10-28','股票大漲');
INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description) VALUES (6,'股票收入',5000,'工商銀行','2016-10-28','股票又大漲');
INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description) VALUES (7,'工資收入',5000,'交通銀行','2016-10-28','又開工資了');
INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description) VALUES (8,'禮金支出',5000,'現金','2016-10-28','朋友結婚');
INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description) VALUES (9,'其他支出',1560,'現金','2016-10-29','丟錢了');
INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description) VALUES (10,'交通支出',2300,'交通銀行','2016-10-29','油價還在漲啊');
INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description) VALUES (11,'喫飯支出',1000,'工商銀行','2016-10-29','又喫飯');
INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description) VALUES (12,'工資收入',1000,'現金','2016-10-30','開資');
INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description) VALUES (13,'交通支出',2000,'現金','2016-10-30','機票好貴');
INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description) VALUES (14,'工資收入',5000,'現金','2016-10-30','又開資');
-- 查詢全部
SELECT * FROM gjp_zhangwu;
-- 條件查詢
SELECT * FROM gjp_zhangwu WHERE createtime BETWEEN 20160106 AND 20160808;
-- 添加賬務
INSERT INTO gjp_zhangwu (flname,money,zhangHu,createtime,description) 
	VALUES ('彩票支出',200,'現金','20200410','歐洲盃');
-- 編輯賬務
UPDATE gjp_zhangwu SET flname='dsf',money=250,zhangHu='asdf',createtime='21000809',description='safdgsadfg'
		WHERE zwid = 15;
-- 刪除賬務
DELETE FROM gjp_zhangwu WHERE zwid=15;

感謝黑馬!!!,感謝這位不知道姓名的老師。去就業班了…
基礎班完結

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章