今天尝试安装了一下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("查询所有账务失败");
}
}
}