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层代码:
- package sql.mysql;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import basic.account.Account;
- public class MySqlForAccounts {
- //=======================================================================================【数据区】
- //JDBC 驱动名
- private final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
- //数据库 URL
- private final String DB_URL = "jdbc:mysql://localhost:3306/familycash?useSSL=false";
- //用户名
- private final String USER = "root";
- //密码
- private final String PASS = "123456";
- //构造器
- private Connection conn = null;
- private Statement stmt = null;
- private PreparedStatement pstmt = null;
- private ResultSet rs = null;
- //=======================================================================================【方法区】
- //-------《返回是否存在名称为name的数据》
- public boolean exist(String name){
- ReSetResult("SELECT customname from account");
- try {
- while(rs.next())
- {
- String t = rs.getString("name");
- if(name.compareTo(t)==0)
- return true;
- }
- } catch (SQLException e) {
- System.out.println("爷爷!你的数据库连接出现问题啦!");
- }
- return false;
- }
- //-------《返回是否存在型号为n的数据》
- public boolean exist(int code){
- ReSetResult("SELECT code from account");
- try {
- while(rs.next())
- {
- String t = rs.getString("code");
- if(code==Integer.parseInt(t))
- return true;
- }
- } catch (SQLException e) {
- System.out.println("爷爷!你的数据库连接出现问题啦!");
- }
- return false;
- }
- //-------《重设rs》
- public void ReSetResult(String sql){
- try {
- stmt = conn.createStatement();
- rs = stmt.executeQuery(sql);
- } catch (SQLException e) {
- System.out.println("爷爷!你的数据库连接出现问题啦!");
- }
- }
- //-------《增删改查》
- //添加一个用户的数据
- public void Add(Account x){
- try {
- pstmt = (PreparedStatement) conn.prepareStatement("insert into account values (?,?,?,?,?,?,?)");
- pstmt.setInt(1, x.getCode());
- pstmt.setString(2, x.getItems());
- pstmt.setDouble(3, x.getBalance());
- pstmt.setInt(4, x.getNum());
- pstmt.setString(5, x.getCustomname());
- pstmt.setString(6, x.getDate());
- pstmt.setString(7, x.getInform());
- pstmt.executeUpdate();
- pstmt.close();
- } catch (SQLException e) {
- System.out.println("爷爷!你的数据库连接出现问题啦!");
- }
- }
- //清空用户数据
- public void cleanAll(){
- int l = MaxCode();
- for(int i=1;i<=l;++i)
- Delete(i);
- }
- //删除一个用户的数据
- public void Delete(int code){
- try {
- pstmt = (PreparedStatement) conn.prepareStatement("delete from account where code=?");
- pstmt.setInt(1,code);
- pstmt.executeUpdate();
- } catch (SQLException e) {
- System.out.println("爷爷!你的数据库连接出现问题啦!");
- }
- }
- //更新一个用户的数据
- public void Renew(int code,Account x){
- try {
- Class.forName(JDBC_DRIVER);
- conn = DriverManager.getConnection(DB_URL,USER,PASS);
- stmt = conn.createStatement();
- pstmt = (PreparedStatement) conn.prepareStatement("update account set code=?, items=?, balance=?, num=?, customname=? ,date=? , inform=? where code=?");
- pstmt.setInt(1, x.getCode());
- pstmt.setString(2, x.getItems());
- pstmt.setDouble(3, x.getBalance());
- pstmt.setInt(4, x.getNum());
- pstmt.setString(5, x.getCustomname());
- pstmt.setString(6, x.getDate());
- pstmt.setString(7, x.getInform());
- pstmt.setInt(8,code);
- pstmt.executeUpdate();
- pstmt.close();
- } catch (SQLException e) {
- System.out.println("爷爷!你的数据库连接出现问题啦!");
- } catch (ClassNotFoundException e) {
- System.out.println("爷爷!你的Class驱动加载出现问题啦!");
- }
- }
- //返回符合格式的长度
- public int AccountLength(String customname){
- ReSetResult("SELECT code, items, balance, num , customname, date, inform FROM account");
- int l = 0;
- try {
- while(rs.next())
- {
- String Customname = rs.getString("customname");
- if(Customname.compareTo(customname)==0)
- ++l;
- }
- } catch (SQLException e) {
- System.out.println("爷爷!你的数据库连接出现问题啦!");
- }
- return l;
- }
- //查询第几个用户的数据
- public Account GetFromSQL(int number){
- if(number <=0||number>Length())
- return null;
- ReSetResult("SELECT code, items, balance, num , customname, date, inform FROM account");
- try {
- int i = 1;
- while(rs.next()&&number>=i)
- {
- int Code = Integer.parseInt(rs.getString("code"));
- String Items = rs.getString("items");
- double Balance = Double.parseDouble(rs.getString("balance"));
- int Num = Integer.parseInt(rs.getString("num"));
- String Customname = rs.getString("customname");
- String Date = rs.getString("date");
- String Inform = rs.getString("inform");
- if(number==i)
- return new Account(Code,Items,Num,Balance,Customname,Date,Inform);
- ++i;
- }
- } catch (SQLException e) {
- System.out.println("爷爷!你的数据库连接出现问题啦!");
- }
- return null;
- }
- //查询一个用户的数据
- public Account Refer(int code_s){
- ReSetResult("SELECT code, items, balance, num , customname, date, inform FROM account");
- Account s = null;
- try {
- while(rs.next())
- {
- int Code = Integer.parseInt(rs.getString("code"));
- String Items = rs.getString("items");
- double Balance = Double.parseDouble(rs.getString("balance"));
- int Num = Integer.parseInt(rs.getString("num"));
- String Customname = rs.getString("customname");
- String Date = rs.getString("date");
- String Inform = rs.getString("inform");
- if(code_s==Code)
- return new Account(Code,Items,Num,Balance,Customname,Date,Inform);
- }
- } catch (SQLException e) {
- System.out.println("爷爷!你的数据库连接出现问题啦!");
- }
- return s;
- }
- //-------《数据数》
- public int Length(){
- ReSetResult("SELECT code, items, balance, num , customname, date, inform FROM account");
- int l = 0;
- try {
- while(rs.next())
- {
- ++l;
- }
- } catch (SQLException e) {
- System.out.println("爷爷!你的数据库连接出现问题啦!");
- }
- return l;
- }
- //-------《最大的编号值》
- public int MaxCode(){
- ReSetResult("SELECT code FROM account");
- int l = 0;
- try {
- while(rs.next())
- {
- int Code = Integer.parseInt(rs.getString("code"));
- if(l<Code)
- l = Code;
- }
- } catch (SQLException e) {
- System.out.println("爷爷!你的数据库连接出现问题啦!");
- }
- return l;
- }
- //-------《释放》
- public void free(){
- try {
- if(pstmt!=null)
- pstmt.close();
- if(stmt!=null)
- stmt.close();
- if(conn!=null)
- conn.close();
- } catch (SQLException e) {
- System.out.println("爷爷!你的数据库连接出现问题啦!");
- }
- }
- //-------《构造方法》
- public MySqlForAccounts(){
- try {
- Class.forName(JDBC_DRIVER);
- conn = DriverManager.getConnection(DB_URL,USER,PASS);
- } catch (ClassNotFoundException e1) {
- System.out.println("爷爷!你的Class驱动加载出现问题啦!");
- } catch (SQLException e) {
- System.out.println("爷爷!你的数据库连接出现问题啦!");
- }
- }
- //-------《主方法》
- public static void main(String[] args){
- MySqlForAccounts m = new MySqlForAccounts();
- System.out.println();
- for(int i=1;i<=m.Length();++i)
- {
- System.out.println(m.exist(i));
- }
- m.free();
- }
- }
MySqlForAccounts
由于涉及博主的个人信息隐私,改代码已经修改,各位仍然可以放心使用
嗯~这其实是修改后的...
第四天: (1.28)
这一天我制作了login.jsp(登录界面),之前都在找合适的登陆界面模板,好几个都和自己的方法有冲突,属于自己无法处理的模板。
最终采用模板:
第五天:(1.29)
这一次我做了大致的主页,相关按钮功能未实现!
然后,今天写servlet,就这样吧!
Java的家庭记账本程序(A)的更多相关文章
- Java的家庭记账本程序(J)
日期:2019.3.9 博客期:041 星期六 这次就来看看我使用全新的模板写的家庭记账本程序!本次附带配色样式!作为本周的学习进度条吧!明天再研究微信小程序的方法! 这一次的记账本程序加了很多功能! ...
- Java的家庭记账本程序(L)
日期:2019.3.13 博客期:044 星期三 整理了两天,我终于也是把微信小程序平台的记账本软件完全开发出来了,并将我的微信账号与GitHub账号完成了绑定,那么我就先展示一部分作品,还有一部分代 ...
- Java的家庭记账本程序(G)
日期:2019.2.24 博客期:035 星期日 啊哈!记账本虽然还是没有做完,不过,今天我的工作量应该是足够的!哦!差点忘记说啦!我是在Android Studio出现了问题之后,跑去研究微信小程序 ...
- Java的家庭记账本程序(B)
日期:2019.2.3 博客期:029 星期日 看看今天想先完成jsp的连接操作,所以首先意识到自己的程序中,管理员可以对成员进行冻结.解封操作,所以先回去补了一下数据库的内容!成员的内容里多了一项i ...
- Java的家庭记账本程序(K)
日期:2019.3.10 博客期:043 星期日 呕吼~这里是编程菜鸟小Master,今天加油的把第二个模板套用了,更改了许多的设定,我想这一个程序的网页版也就到这里结束了,下面是一部分的展示图,想要 ...
- Java的家庭记账本程序(H) :微信小程序 image 标签,在模拟器中无法显示图片?(已解决)
日期:2019.2.25 博客期:036 星期一 吼!今天我还是继续研究了自己的微信小程序,还没有连接数据库,只是在xml的设计上添加了不少东西,大家可以看我的截图,嗯~说到今天的收获,就是 marg ...
- Java的家庭记账本程序(F)
日期:2019.2.17 博客期:034 星期日 我先配置了Android的相关环境,先试着做了Hello World的测试,但是却出现了很严重的问题,问题如下: Unable to get curr ...
- Java的家庭记账本程序(E)
日期:2019.2.9 博客期:032 星期二 今天是把程序的相关Bug补一补,嗯`: 1.添加了跳转说明 生成了一个对于成员的权限声明内容,用户再登陆界面点击Go按钮后,切换至说明页面,再次点击Go ...
- Java的家庭记账本程序(D)
日期:2019.2.8 博客期:031 星期一 今天是把程序的查询功能以列表的形式完成了! 截图如下:
随机推荐
- Java SE之网络编程:知识框架
- js的执行环境学习笔记
js执行全局代码或者执行函数代码的时候,首先进行准备,然后再执行.准备阶段,就是创建执行环境的阶段. 1.执行环境 当一段js代码遇到解释器的时候,比如浏览器打开一段js代码时候,第一件事并不是马上执 ...
- java基础 包装类
包装类在集合中用来定义集合元素的类型. 1.Integer.MIN_VALUE:int类型的最小值:-2^31 2.Integer.MAX_VALUE:int类型的最大值:2^31-1 3.int ...
- jq的stop
jQuery stop() 方法用于停止动画或效果,在它们完成之前. stop() 方法适用于所有 jQuery 效果函数,包括滑动.淡入淡出和自定义动画. $(selector).stop(stop ...
- 【blog】好用的markdown插件 - Mditor
效果 官网地址 GitHub: https://github.com/houfeng/mditor 主页: http://houfeng.net/mditor/
- mysql 查询优化 ~ select count 知多少
一 简介:今天咱们来聊聊mysql的查询总数 二 具体介绍 1 从引擎层面说 myisam myisam的扫描总行数是非常快的,这是因为myisam会将表的总行数存储起来,定期维护,但是注意,一旦加 ...
- 二叉查找树(Binary Search Tree)
二叉树的一个重要的应用是他们在查找中的使用. 以下是二叉查找树的查找代码 #include <stdio.h> int main() { typedef struct Node{ int ...
- python,异常处理
# 该例子是对文件异常和类型异常分别进行的处理 try: sum = 1+' f=open('wo.txt') print(f.read()) f.close() except OSError as ...
- VMware网络问题
配置好网络的虚拟机,隔一段时间后可能会发现网络不可用了,此时可以检查一下以下3个服务是否开启 一般情况下,启动以上三个服务后网络就通了. 如果以上服务都启动了还不行,那就重启一下网络: # servi ...
- WC2019 游记
Day 0 早上奇迹般的六点半起床平常这时候我还没睡呢 早餐在武汉站吃了一碗28的番茄牛肉米线,结果上菜后我把所有非米线的固体(包括番茄和牛肉)全挑出去了 高二大佬:一个愿宰一个愿挨 在高铁上待了四个 ...