今天尝试安装了一下Android studio,以下是我在网上找到的参考教程的链接http://www.runoob.com/android/android-studio-install.html,安装时也需要配置jdk,填入jdk的路径,在所需的组件中我也是选了"Android Studio", "Android SDK", "Android 虚拟机"和"外观(Intel chip)"。但是现在还不清楚它们的作用。解压 SDK 软件包时不知道什么原因失败了一次,后来又重新来了一边,花了不少时间,由于我下载的是英文版,又并不熟悉这个软件的操作,所以我选择用JavaWeb来做这个记账本软件。
今天主要先做了一下后台数据库的表格,我认为记账本应该设计两个外表,一个用于账务,另一个存储用户信息。
以下是源码
import java.sql.SQLException; import java.util.List; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanListHandler; import cn.cyxd.gjp.domain.Users; import cn.cyxd.gjp.tools.JDBCUtils; /* * 实现对数据表gjp_users数据增、删、改、查操作。 * dbutils工具类完成,类成员创建QueryRunner对象,指定数据源 */ public class UsersDao { private QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource()); /* * 定义方法:实现删除用户 * 业务层调用,传递主键id值 */ public void deleteUsers(int uid) { try { //拼写删除数据SQl语句 String sql = "DELETE FROM gjp_users WHERE uid=?"; qr.update(sql, uid); } catch (SQLException ex) { System.out.println(ex); throw new RuntimeException("删除用户失败"); } } /* * 定义方法:实现编辑用户功能 * 由业务层调用,传递Users对象 * 将对象中的数据,更新到数据表中 */ public void editUsers(Users user) { try{ //拼写编辑账务的SQL语句 String sql = "UPDATE gjp_users SET uname=?,upassword=? WHERE uid=?"; //定义对象数组,将所有的参数传递给对象数组 Object[] params = {user.getUname(),user.getUpassword(),user.getUid()}; qr.update(sql, params); }catch (SQLException ex) { System.out.println(ex); throw new RuntimeException("很遗憾!用户编辑失败"); } } /* * 定义方法:实现添加用户 * 由业务层调用,传递Users对象 * 将Users对象中的数据,添加到数据表 */ public void addUsers(Users user){ try{ //拼写添加数据的SQL语句 String sql = "INSERT INTO gjp_users(uname,upassword) VALUES (?,?)"; //创建对象数据,存储2个占位符的实际参数 //实际参数来源是:传递过来的对象Users Object[] params = {user.getUname(),user.getUpassword()}; //调用qr对象中的方法updata执行添加 qr.update(sql,params); }catch(SQLException ex){ System.out.println(ex); throw new RuntimeException("用户添加失败"); } } /* * 定义方法:查询数据库,带有条件去查询账务表 * 由业务层调用,查询结果集存储到Bean对象,存储到List集合 * 调用者传递2个日期字符串 */ public List<Users> select(String uname,String upassword){ try{ //拼写条件查询的SQL语句 String sql = "SELECT *FROM gjp_users WHERE uname = ? AND upassword = ?"; //定义对象数组,存储?占位符 Object[] params = {uname,upassword}; //调用qr对象的方法query查询数据表,获取结果集 return qr.query(sql, new BeanListHandler<>(Users.class),params); }catch(SQLException ex){ System.out.println(ex); throw new RuntimeException("无法识别用户"); } } /* * 定义方法:查询用户信息 * 由业务层调用 * 结果集,将所有的账务数据,存储到Bean对象,存储到集合中 */ public List<Users> selectAll(){ try{ //查询用户数据的SQL语句 String sql = "SELECT * FROM gjp_users"; //调用qr对象的方法,query方法,结果集BeanListHandler return qr.query(sql,new BeanListHandler<>(Users.class) ); }catch(SQLException e){ System.out.println(e); throw new RuntimeException("查询所有用户失败"); } } }
import java.sql.SQLException; import java.util.List; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanListHandler; import cn.cyxd.gjp.domain.ZhangWu; import cn.cyxd.gjp.tools.JDBCUtils; /* * 实现对数据表gjp_zhangwu数据增、删、改、查操作。 * dbutils工具类完成,类成员创建QueryRunner对象,指定数据源 */ public class ZhangWuDao { private QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource()); /* * 定义方法:实现删除账务 * 业务层调用,传递主键id值 */ public void deleteZhangWu(int zwid) { try{ //拼写删除数据SQl语句 String sql = "DELETE FROM gjp_zhangwu WHERE zwid=?"; qr.update(sql, zwid); } catch (SQLException ex) { System.out.println(ex); throw new RuntimeException("删除账务失败"); } } /* * 定义方法:实现编辑账务功能 * 由业务层调用,传递ZhangWu对象 * 将对象中的数据,更新到数据表中 */ public void editZhangWu(ZhangWu zw) { try{ //拼写编辑账务的SQL语句 String sql = "UPDATE gjp_zhangwu SET flname=?,money=?,zhanghu=?,createtime=?,description=? WHERE zwid=?"; //定义对象数组,将所有的参数传递给对象数组 Object[] params = {zw.getFlname(),zw.getMoney(),zw.getZhanghu(),zw.getCreatetime(),zw.getDescription(),zw.getZwid()}; qr.update(sql, params); }catch (SQLException ex) { System.out.println(ex); throw new RuntimeException("很遗憾!账务编辑失败"); } } /* * 定义方法:实现添加账务功能 * 由业务层调用,传递ZhangWu对象 * 将ZhangWu对象中的数据,添加到数据表 */ public void addZhangWu(ZhangWu zw){ try{ //拼写添加数据的SQL语句 String sql = "INSERT INTO gjp_zhangwu(flname,money,zhangHu,createtime,description) VALUES (?,?,?,?,?)"; //创建对象数据,存储5个占位符的实际参数 //实际参数来源是:传递过来的对象ZhangWu Object[] params = {zw.getFlname(),zw.getMoney(),zw.getZhanghu(),zw.getCreatetime(),zw.getDescription()}; //调用qr对象中的方法updata执行添加 qr.update(sql,params); }catch(SQLException ex){ System.out.println(ex); throw new RuntimeException("账务添加失败"); } } /* * 定义方法:查询数据库,带有条件去查询账务表 * 由业务层调用,查询结果集存储到Bean对象,存储到List集合 * 调用者传递2个日期字符串 */ public List<ZhangWu> select(String startDate,String endDate){ try{ //拼写条件查询的SQL语句 String sql = "SELECT * FROM gjp_zhangwu WHERE createtime BETWEEN ? AND ?"; //定义对象数组,存储?占位符 Object[] params = {startDate,endDate}; //调用qr对象的方法query查询数据表,获取结果集 return qr.query(sql, new BeanListHandler<>(ZhangWu.class),params); }catch(SQLException ex){ System.out.println(ex); throw new RuntimeException("条件查询失败"); } } /* * 定义方法:查询数据库,获取所有的账务数据 * 由业务层调用 * 结果集,将所有的账务数据,存储到Bean对象,存储到集合中 */ public List<ZhangWu> selectAll(){ try{ //查询账务数据的SQL语句 String sql = "SELECT * FROM gjp_zhangwu"; //调用qr对象的方法,query方法,结果集BeanListHandler return qr.query(sql,new BeanListHandler<>(ZhangWu.class) ); }catch(SQLException e){ System.out.println(e); throw new RuntimeException("查询所有账务失败"); } } }