javase项目1_管家婆

实现以下的效果(该项目需要的资料放在下面的链接里)

使用DBUtils操作数据库完成增删改查   分层来解决

完成步骤:

1.添加

2.编辑

3.删除

4.查询(查询所有,按照日期条件查询)

5.退出系统

db.properties

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/gjp
user=root
password=root
public class JDBCUtils {
	public static  String driverClassName;
	public static  String url;
	public static  String user;
	public static  String password ;
											 
	private static BasicDataSource  dataSource=new BasicDataSource();
	static{
		load();
		try {
			dataSource.setDriverClassName(driverClassName);
			dataSource.setUrl(url);
			dataSource.setUsername(user);
			dataSource.setPassword(password);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public static void load(){
		InputStream in = JDBCUtils.class.getClassLoader().getResourceAsStream("db.properties");
		Properties pro=new Properties();
		try {
			pro.load(in);
		} catch (IOException e) {
			e.printStackTrace();
		}
		 driverClassName=pro.getProperty("driverClassName");
		 url=pro.getProperty("url");
		 user=pro.getProperty("user");
		 password=pro.getProperty("password");
	}

	public static DataSource getDataSource(){
		return dataSource;
	}
	
}
public class ZhangWu {
	private int zwid;
	private String flname;
	private double money;
	private String zhanghu;
	private String createtime;
	private String description;
}
public class MainApp {
	public static void main(String[] args) {
		new MainView().run();

	}

}
public class MainView {
	private ZhangWuController controller=new ZhangWuController();
	private Scanner sc=new Scanner(System.in);
	public void run() {
		while(true){
			System.out.println("----------管家婆家庭记账软件----------");
			System.out.println("1.添加账务\t\t2.编辑账务\t\t3.删除账务\t\t4.查询账务\t\t5.退出系统");
			System.out.println("请输入要操作的功能序号[1-5]");
			int chooseNum=sc.nextInt();
			switch(chooseNum){
			case 1:
				addZhangWu();
				break;
			case 2:
				updateZhangWu();
				break;
			case 3:
				deleteZhangWu();
				break;
			case 4:
				selectZhangWu();
				break;
			case 5:
				System.out.println("您已退出本系统");
				return;
			default:
				System.out.println("请输入正确的序号");
				break;
			}
		}
		
	}
	private void deleteZhangWu() {
		System.out.println("选择的删除账务功能");
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入编号");
		int zwid=sc.nextInt();
		if(getAllId().contains(zwid)){
			controller.deleteZhangWu(zwid);
			System.out.println("恭喜你,删除账务成功");
		}else{
			System.out.println("不好意思,您输入的编号不存在");
		}
		
	}
	private void updateZhangWu() {
		System.out.println("选择的添加账务功能,请输入以下内容");
		selectAll();
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入编号");
		int zwid=sc.nextInt();
		if(getAllId().contains(zwid)){
			System.out.println("请输入新的类别");
			String flname=sc.next();
			System.out.println("请输入新的账户");
			String zhanghu=sc.next();
			System.out.println("请输入新的金额");
			double money=sc.nextDouble();
			System.out.println("输入新的日期:格式XXXX-XX-xx");
			String createtime=sc.next();
			System.out.println("请输入新的说明");
			String description=sc.next();
			controller.updateZhangWu(zwid, flname, money, zhanghu, createtime, description);
			System.out.println("恭喜你,修改账务成功");
		}else{
			System.out.println("不好意思,您输入的编号不存在");
		}
		
		
		
	}
	
	public List<Integer> getAllId(){
		return controller.getAllId();
	}
	
	private void addZhangWu() {
		System.out.println("选择的添加账务功能,请输入以下内容");
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入类别");
		String flname=sc.nextLine();
		System.out.println("请输入账户");
		String zhanghu=sc.nextLine();
		System.out.println("请输入金额");
		double money=sc.nextDouble();
		System.out.println("输入日期:格式XXXX-XX-xx");
		String createtime=sc.next();
		System.out.println("请输入说明");
		String description=sc.next();
		controller.addZhangWu(flname, money, zhanghu, createtime, description);
		System.out.println("恭喜你,添加账务成功");
	}
	private void selectZhangWu() {
		Scanner sc=new Scanner(System.in);
		System.out.println("1.查询所有,2.按照日期条件查询");
		int chooseNum=sc.nextInt();
			switch(chooseNum){
			case 1:
				selectAll();
				break;
			case 2:
				selectByCondition();
				break;
			default:
				System.out.println("请输入正确的序号");
				break;
		}
	}
	private void selectByCondition() {
		 System.out.println("选择条件查询,输入日期格式XXXX-XX-XX");
		Scanner sc=new Scanner(System.in);
		System.out.print("请输入开始时间:");
		String begin=sc.nextLine();
		System.out.print("请输入结束时间:");
		String end=sc.nextLine();
		List<ZhangWu> list = controller.selectByCondition(begin, end);
		print(list);
		
	}
	private void selectAll() {
		List<ZhangWu> list=controller.selectAll();
		 if(list.size()!=0)
			 print(list);
		 else
			 System.out.println("没有查询到数据");
	}
	
	
	private void print(List<ZhangWu> list) {
		System.out.println("ID\t\t类别\t\t账户\t\t金额\t\t时间\t\t说明");
		for(ZhangWu zw:list){
			 System.out.println(zw.getZwid()+"\t\t"+zw.getFlname()+"\t\t"+zw.getZhanghu()+"\t\t"+
				     zw.getMoney()+"\t\t"+zw.getCreatetime()+"\t"+zw.getDescription());
		}
	}

}
public class ZhangWuController {
	private ZhangWuService service=new ZhangWuService();
	
	public List<ZhangWu> selectAll(){
		return service.selectAll();
	}

	public List<ZhangWu> selectByCondition(String begin,String end){
		return service.selectByCondition(begin, end);
	}
	
	public void addZhangWu(String flname, double money, String zhanghu,String createtime,String description){
		service.addZhangWu(flname, money, zhanghu, createtime, description);
	}
	
	public void updateZhangWu(int zwid,String flname, double money, String zhanghu,String createtime,String description) {
		service.updateZhangWu(zwid, flname, money, zhanghu, createtime, description);
	}

	public List<Integer> getAllId() {
		return service.getAllId();
	}
	
	public void deleteZhangWu(int zwid){
		service.deleteZhangWu(zwid);
	}
}
public class ZhangWuService {
	private ZhangWuDao dao=new ZhangWuDao();
	
	public List<ZhangWu> selectAll(){
		return dao.selectAll();
	}
	
	
	public List<ZhangWu> selectByCondition(String begin,String end){
		return dao.selectByCondition(begin, end);
	}
	
	public void addZhangWu(String flname, double money, String zhanghu,String createtime,String description){
		dao.addZhangWu(flname, money, zhanghu, createtime, description);
	}
	
	public void updateZhangWu(int zwid,String flname, double money, String zhanghu,String createtime,String description) {
		dao.updateZhangWu(zwid, flname, money, zhanghu, createtime, description);
	}


	public List<Integer> getAllId() {
		return dao.getAllId();
	}
	
	public void deleteZhangWu(int zwid){
		dao.deleteZhangWu(zwid);
	}
}
public class ZhangWuDao {
	private QueryRunner qr=new QueryRunner(JDBCUtils.getDataSource());
	public List<ZhangWu> selectAll(){
		String sql="select * from gjp_zhangwu";
		List<ZhangWu> list=null;
		try {
			list=qr.query(sql, new BeanListHandler<ZhangWu>(ZhangWu.class));
		} catch (SQLException e) {
			e.printStackTrace();
			throw new RuntimeException("查询所有商品失败");
		}
		return list;
	}
	
	public List<ZhangWu> selectByCondition(String begin,String end){
		String sql="select * from gjp_zhangwu where createtime between ? and ? ";
		Object[] params={begin,end};
		List<ZhangWu> list=null;
		try {
			list=qr.query(sql, new BeanListHandler<ZhangWu>(ZhangWu.class), params);
		} catch (SQLException e) {
			e.printStackTrace();
			throw new RuntimeException("按照条件查询商品失败");
		}
		return list;
	}
	
	public void addZhangWu(String flname, double money, String zhanghu,String createtime,String description){
		String sql="INSERT into gjp_zhangwu(flname,money,zhanghu,createtime,description) values(?,?,?,?,?)";
		Object [] params={flname,money,zhanghu,createtime,description};
		try {
			qr.update(sql, params);
		} catch (SQLException e) {
			e.printStackTrace();
		} 
	}
	
	
	public void updateZhangWu(int zwid,String flname, double money, String zhanghu,String createtime,String description) {
		String sql="update gjp_zhangwu set flname=?,money=?,zhanghu=?,createtime=?,description=? where zwid=?";
		Object[] params={flname,money,zhanghu,createtime,description,zwid};
		try {
			qr.update(sql, params);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	public List<Integer> getAllId() {
		String sql="SELECT zwid from gjp_zhangwu";
		try {
			return qr.query(sql, new ColumnListHandler<>());
		} catch (SQLException e) {
			e.printStackTrace();
			throw new RuntimeException("查询编号失败");
		}
	}
	
	public void deleteZhangWu(int zwid){
		String sql="DELETE from gjp_zhangwu where zwid=?";
		try {
			qr.update(sql,zwid);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
	}
}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guoyebing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值