日期: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)的更多相关文章

  1. Java的家庭记账本程序(J)

    日期:2019.3.9 博客期:041 星期六 这次就来看看我使用全新的模板写的家庭记账本程序!本次附带配色样式!作为本周的学习进度条吧!明天再研究微信小程序的方法! 这一次的记账本程序加了很多功能! ...

  2. Java的家庭记账本程序(L)

    日期:2019.3.13 博客期:044 星期三 整理了两天,我终于也是把微信小程序平台的记账本软件完全开发出来了,并将我的微信账号与GitHub账号完成了绑定,那么我就先展示一部分作品,还有一部分代 ...

  3. Java的家庭记账本程序(G)

    日期:2019.2.24 博客期:035 星期日 啊哈!记账本虽然还是没有做完,不过,今天我的工作量应该是足够的!哦!差点忘记说啦!我是在Android Studio出现了问题之后,跑去研究微信小程序 ...

  4. Java的家庭记账本程序(B)

    日期:2019.2.3 博客期:029 星期日 看看今天想先完成jsp的连接操作,所以首先意识到自己的程序中,管理员可以对成员进行冻结.解封操作,所以先回去补了一下数据库的内容!成员的内容里多了一项i ...

  5. Java的家庭记账本程序(K)

    日期:2019.3.10 博客期:043 星期日 呕吼~这里是编程菜鸟小Master,今天加油的把第二个模板套用了,更改了许多的设定,我想这一个程序的网页版也就到这里结束了,下面是一部分的展示图,想要 ...

  6. Java的家庭记账本程序(H) :微信小程序 image 标签,在模拟器中无法显示图片?(已解决)

    日期:2019.2.25 博客期:036 星期一 吼!今天我还是继续研究了自己的微信小程序,还没有连接数据库,只是在xml的设计上添加了不少东西,大家可以看我的截图,嗯~说到今天的收获,就是 marg ...

  7. Java的家庭记账本程序(F)

    日期:2019.2.17 博客期:034 星期日 我先配置了Android的相关环境,先试着做了Hello World的测试,但是却出现了很严重的问题,问题如下: Unable to get curr ...

  8. Java的家庭记账本程序(E)

    日期:2019.2.9 博客期:032 星期二 今天是把程序的相关Bug补一补,嗯`: 1.添加了跳转说明 生成了一个对于成员的权限声明内容,用户再登陆界面点击Go按钮后,切换至说明页面,再次点击Go ...

  9. Java的家庭记账本程序(D)

    日期:2019.2.8 博客期:031 星期一 今天是把程序的查询功能以列表的形式完成了! 截图如下:

随机推荐

  1. 第28月第10天 iOS动态库

    1. https://www.cnblogs.com/wfwenchao/p/5577789.html https://github.com/wangzz/Demo http://www.kimbs. ...

  2. MySql cmd下的学习笔记 —— 有关子查询的操作(where型,from型,exists型子查询)

    先找到goods表 查询goods_id最大的商品 where型的子查询 查询goods_id最大的商品(不能用排序) 把两步写成一步,就是子查询 from型子查询 查找出每种cat_id下goods ...

  3. CF1101G (Zero XOR Subset)-less

    题目地址:CF1101G (Zero XOR Subset)-less 线性基基础题 预处理一个前缀异或和 \(s_i\) 这样题目就变成了:在 \(n\) 个 \(s_i\) 中尽量选择多的数使选择 ...

  4. vc++基础班[22]---文件的基本操作2

      MFC 中的 CFile 及其派生类中没有提供直接进行文件的复制操作,因而要借助于SDK API: SDK中的文件相关函数常用的有CopyFile().CreateDirectory().Dele ...

  5. oracle监控

    python代码 #!/usr/bin/env python # -*- coding: UTF-8 -*- import subprocess import sys import re def ru ...

  6. VS2017中用C#调试DLL

    1.首先将DLL工程导入到包含C#应用程序工程的解决方案中 2.将DLL和C#工程都改为[Debug]模式 3.设置DLL工程属性,右键点击DLL工程,选择[属性],选择[常规],将[输出目录]改为C ...

  7. tomcat session Memcache 共享

    背景 这次做的这个项目并发还真是挺高,单表一天产生百万条记录不在话下.结果导致运行过程中经常丢失数据,卡.慢等.开来终于要搞一次负载均衡了,之前实验学习了不少,但是没有在项目中实际用过,因为并发量不大 ...

  8. 【转】RESTful Webservice创建

    RESTful Web Services with Java   REST stands for REpresentational State Transfer, was first introduc ...

  9. 027_nginx常见优化参数

    一.nginx.conf主配置文件 proxy_ignore_client_abort on; #不允许代理端主动关闭连接

  10. mongodb3.4.6配置主从

    .rpm包安装mongodb3.4.6 下载地址:https://repo.mongodb.org/yum/redhat/7/mongodb-org/3.4/x86_64/RPMS/ rpm -ivh ...