zoukankan      html  css  js  c++  java
  • Java的家庭记账本程序(A)

     日期:2019.2.1

    博客期:028

    星期五

           其实我早就开始开发“家庭记账本”的软件了,只不过写博客写的有点晚,我是打算先做web的!因为Android Studio的教程,还是要对应版本,好多问题我都没来得及处理。那么,先说一下,这一个星期以来,我的完成度吧!其实,就是每天开发一点儿,我好像做麻烦了。

      第一天:(1.23)

      我先制作了基本的JavaBean,如下图:

      

           basic是作为基本的文件夹,其中包括了我们整个项目中需要用到的基础类,Account也有账单的意思,这里并不是账户,而Manager和Member才是内部的成员!大家可以看出我是非常喜欢分文件夹的,这样处理起大项目来,就会方便许多。

           第二天:(1.24)

      我完成了对于表的设计

      

      account、member分别存账单数据和成员数据

      basic呃~那时候还没有想好

      补充了一写数据用于测试数据库连接情况

      第三天:(1.25)

       编写mysql的连接DOC层代码:

      

      

      1 package sql.mysql;
      2 
      3 import java.sql.Connection;
      4 import java.sql.DriverManager;
      5 import java.sql.PreparedStatement;
      6 import java.sql.ResultSet;
      7 import java.sql.SQLException;
      8 import java.sql.Statement;
      9 
     10 import basic.account.Account;
     11 
     12 public class MySqlForAccounts {
     13     //=======================================================================================【数据区】
     14     //JDBC 驱动名
     15     private final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
     16     //数据库 URL
     17     private final String DB_URL = "jdbc:mysql://localhost:3306/familycash?useSSL=false";
     18     //用户名
     19     private final String USER = "root";
     20     //密码
     21     private final String PASS = "123456";
     22     //构造器
     23     private Connection conn = null;
     24     private Statement stmt = null;
     25     private PreparedStatement pstmt = null;
     26     private ResultSet rs = null;
     27     //=======================================================================================【方法区】
     28     //-------《返回是否存在名称为name的数据》
     29     public boolean exist(String name){
     30         ReSetResult("SELECT customname from account");
     31         try {
     32             while(rs.next())
     33             {
     34                 String t = rs.getString("name");
     35                 if(name.compareTo(t)==0)
     36                     return true;
     37             }
     38         } catch (SQLException e) {
     39             System.out.println("爷爷!你的数据库连接出现问题啦!");
     40         }
     41         return false;
     42     }
     43     //-------《返回是否存在型号为n的数据》
     44     public boolean exist(int code){
     45         ReSetResult("SELECT code from account");
     46         try {
     47             while(rs.next())
     48             {
     49                 String t = rs.getString("code");
     50                 if(code==Integer.parseInt(t))
     51                     return true;
     52             }
     53         } catch (SQLException e) {
     54             System.out.println("爷爷!你的数据库连接出现问题啦!");
     55         }
     56         return false;
     57     }
     58     //-------《重设rs》
     59     public void ReSetResult(String sql){
     60         try {
     61             stmt = conn.createStatement();
     62             rs = stmt.executeQuery(sql);
     63         } catch (SQLException e) {
     64             System.out.println("爷爷!你的数据库连接出现问题啦!");
     65         }
     66     }
     67     //-------《增删改查》
     68     //添加一个用户的数据
     69     public void Add(Account x){
     70         try {
     71             pstmt = (PreparedStatement) conn.prepareStatement("insert into account values (?,?,?,?,?,?,?)");
     72             pstmt.setInt(1, x.getCode());
     73             pstmt.setString(2, x.getItems());
     74             pstmt.setDouble(3, x.getBalance());
     75             pstmt.setInt(4, x.getNum());
     76             pstmt.setString(5, x.getCustomname());
     77             pstmt.setString(6, x.getDate());
     78             pstmt.setString(7, x.getInform());
     79             pstmt.executeUpdate();
     80             pstmt.close();
     81             } catch (SQLException e) {
     82                 System.out.println("爷爷!你的数据库连接出现问题啦!");    
     83         }
     84     }
     85     //清空用户数据
     86     public void cleanAll(){
     87         int l = MaxCode();
     88         for(int i=1;i<=l;++i)
     89             Delete(i);
     90     }
     91     //删除一个用户的数据
     92     public void Delete(int code){
     93         try {
     94             pstmt = (PreparedStatement) conn.prepareStatement("delete from account where code=?");
     95             pstmt.setInt(1,code);
     96             pstmt.executeUpdate();
     97         } catch (SQLException e) {
     98             System.out.println("爷爷!你的数据库连接出现问题啦!");
     99         }
    100     }
    101     //更新一个用户的数据
    102     public void Renew(int code,Account x){
    103         try {
    104             Class.forName(JDBC_DRIVER);
    105             conn = DriverManager.getConnection(DB_URL,USER,PASS);
    106             stmt = conn.createStatement();
    107             pstmt = (PreparedStatement) conn.prepareStatement("update account set code=?, items=?, balance=?, num=?, customname=? ,date=? , inform=? where code=?");
    108             pstmt.setInt(1, x.getCode());
    109             pstmt.setString(2, x.getItems());
    110             pstmt.setDouble(3, x.getBalance());
    111             pstmt.setInt(4, x.getNum());
    112             pstmt.setString(5, x.getCustomname());
    113             pstmt.setString(6, x.getDate());
    114             pstmt.setString(7, x.getInform());
    115             pstmt.setInt(8,code);
    116             pstmt.executeUpdate();
    117             pstmt.close();
    118         } catch (SQLException e) {
    119             System.out.println("爷爷!你的数据库连接出现问题啦!");
    120         } catch (ClassNotFoundException e) {
    121             System.out.println("爷爷!你的Class驱动加载出现问题啦!");
    122         }
    123     }
    124     //返回符合格式的长度
    125     public int AccountLength(String customname){
    126         ReSetResult("SELECT code, items, balance, num , customname, date, inform FROM account");
    127         int l = 0;
    128         try {
    129             while(rs.next())
    130             {
    131                 String Customname = rs.getString("customname");
    132                 if(Customname.compareTo(customname)==0)
    133                     ++l;
    134             }
    135         } catch (SQLException e) {
    136             System.out.println("爷爷!你的数据库连接出现问题啦!");
    137         }
    138         return l;
    139         
    140     }
    141     //查询第几个用户的数据
    142     public Account GetFromSQL(int number){
    143         if(number <=0||number>Length())
    144             return null;
    145         ReSetResult("SELECT code, items, balance, num , customname, date, inform FROM account");
    146         try {
    147             int i = 1;
    148             while(rs.next()&&number>=i)
    149             {
    150                 int Code = Integer.parseInt(rs.getString("code"));
    151                 String Items = rs.getString("items");
    152                 double Balance = Double.parseDouble(rs.getString("balance"));
    153                 int Num = Integer.parseInt(rs.getString("num"));
    154                 String Customname = rs.getString("customname");
    155                 String Date = rs.getString("date");
    156                 String Inform = rs.getString("inform");
    157                 if(number==i)
    158                     return new Account(Code,Items,Num,Balance,Customname,Date,Inform);
    159                 ++i;
    160             }
    161         } catch (SQLException e) {
    162             System.out.println("爷爷!你的数据库连接出现问题啦!");
    163         }
    164         return null;
    165     }
    166     //查询一个用户的数据
    167     public Account Refer(int code_s){
    168         ReSetResult("SELECT code, items, balance, num , customname, date, inform FROM account");
    169         Account s = null;
    170         try {
    171             while(rs.next())
    172             {
    173                 int Code = Integer.parseInt(rs.getString("code"));
    174                 String Items = rs.getString("items");
    175                 double Balance = Double.parseDouble(rs.getString("balance"));
    176                 int Num = Integer.parseInt(rs.getString("num"));
    177                 String Customname = rs.getString("customname");
    178                 String Date = rs.getString("date");
    179                 String Inform = rs.getString("inform");
    180                 if(code_s==Code)
    181                     return new Account(Code,Items,Num,Balance,Customname,Date,Inform);
    182             }
    183         } catch (SQLException e) {
    184             System.out.println("爷爷!你的数据库连接出现问题啦!");
    185         }
    186         return s;
    187     }
    188     //-------《数据数》
    189     public int Length(){
    190         ReSetResult("SELECT code, items, balance, num , customname, date, inform FROM account");
    191         int l = 0;
    192         try {
    193             while(rs.next())
    194             {
    195                 ++l;
    196             }
    197         } catch (SQLException e) {
    198             System.out.println("爷爷!你的数据库连接出现问题啦!");
    199         }
    200         return l;
    201     }
    202     //-------《最大的编号值》
    203     public int MaxCode(){
    204         ReSetResult("SELECT code FROM account");
    205         int l = 0;
    206         try {
    207             while(rs.next())
    208             {
    209                 int Code = Integer.parseInt(rs.getString("code"));
    210                 if(l<Code)
    211                     l = Code;
    212             }
    213         } catch (SQLException e) {
    214             System.out.println("爷爷!你的数据库连接出现问题啦!");
    215         }
    216         return l;
    217     }
    218     //-------《释放》
    219     public void free(){
    220         try {
    221             if(pstmt!=null)
    222                 pstmt.close();
    223             if(stmt!=null)
    224                 stmt.close();
    225             if(conn!=null)
    226                 conn.close();
    227         } catch (SQLException e) {
    228             System.out.println("爷爷!你的数据库连接出现问题啦!");
    229         }
    230     }
    231     //-------《构造方法》
    232     public MySqlForAccounts(){
    233         try {
    234             Class.forName(JDBC_DRIVER);
    235             conn = DriverManager.getConnection(DB_URL,USER,PASS);
    236         } catch (ClassNotFoundException e1) {
    237             System.out.println("爷爷!你的Class驱动加载出现问题啦!");
    238         } catch (SQLException e) {
    239             System.out.println("爷爷!你的数据库连接出现问题啦!");
    240         }
    241     }
    242     //-------《主方法》
    243     public static void main(String[] args){
    244         MySqlForAccounts m = new MySqlForAccounts();
    245         System.out.println();
    246         for(int i=1;i<=m.Length();++i)
    247         {
    248             System.out.println(m.exist(i));
    249         }
    250         m.free();
    251     }
    252 }
    MySqlForAccounts

    由于涉及博主的个人信息隐私,改代码已经修改,各位仍然可以放心使用

      嗯~这其实是修改后的...

      第四天: (1.28)

      这一天我制作了login.jsp(登录界面),之前都在找合适的登陆界面模板,好几个都和自己的方法有冲突,属于自己无法处理的模板。

      最终采用模板:

      

      第五天:(1.29)

       这一次我做了大致的主页,相关按钮功能未实现!

      

      然后,今天写servlet,就这样吧!

      

  • 相关阅读:
    读书计划
    《梦断代码》读书笔记1
    合作项目5
    合作项目4
    合作项目3
    电梯调度需求分析
    合作项目2
    四则运算3程序
    合作编程
    四则运算某模块程序测试
  • 原文地址:https://www.cnblogs.com/onepersonwholive/p/10414629.html
Copyright © 2011-2022 走看看