SoSo移动业务大厅

JDBC核心API

JDBC中的核心类有:DriverManager、Connection、Statement,和ResultSet!-  DriverManger(驱动管理器)的作用有两个:

 1. 注册驱动:这可以让JDBC知道要使用的是哪个驱动;

2. 获取Connection:如果可以获取到Connection,那么说明已经与数据库连接上了。

-  Connection对象表示连接,与数据库的通讯都是通过这个对象展开的:

> Connection最为重要的一个方法就是用来获取Statement对象;

- Statement是用来向数据库发送SQL语句的,这样数据库就会执行发送过来的SQL语句:

1. void executeUpdate(String sql):执行更新操作(insert、update、delete等);

2. ResultSet executeQuery(String sql):执行查询操作,数据库在执行查询后会把查询结果,查询结果就是ResultSet;

-  ResultSet对象表示查询结果集,只有在执行查询操作后才会有结果集的产生。结果集是一个二维的表格,有行有列。操作结果集要学习移动ResultSet内部的“行光标”,以及获取当前行上的每一列上的数据:

1. boolean next():使“行光标”移动到下一行,并返回移动后的行是否存在;

2. XXX getXXX(int col):获取当前行指定列上的值,参数就是列数,列数从1开始,而不是0。

JDBC的入门程序

使用jdbc的步骤:

1. 导jar包:驱动!

2. 加载驱动类:Class.forName(“类名”);

3. 使用DriverManager类来得到Connection对象!

4. 编写sql指令(insert,delete,update,select)

5. 使用Connection得到Statement对象

6. 使用Statement对象对数据库进行增删改查操作

7. 分析执行的结果,增删改就获取受影响的行数,如果是查询就获取查询结果集

8. 关闭资源


一、嗖嗖大厅的主要页面

private void showFirstMenu() throws StatusDisbleException, SQLException, CardOrPasswordNotExitExcepion { System.out.println("*********欢迎使用嗖嗖移动业务大厅*************"); System.out.println("1.用户登录\t2.用户注册\t3.使用嗖嗖\t4.话费充值\t5.资费说明\t6.退出系统"); System.out.print("请选择:"); int choose = this.scanner.nextInt(); switch(choose) { case 1: this.doLogin(); break; case 2: this.doRegister(); break; case 3: this.useSoSo(); break; case 4: this.topUp(); break; case 5: this.cosInfo(); break; case 6: this.exitSystem(); break; default: System.out.println("输入有误!请重新输入!"); this.showSecondMenu(); } }

二、用户登录页面

private void doLogin() throws StatusDisbleException, SQLException, CardOrPasswordNotExitExcepion {        System.out.println("************可选择的卡号*******************");        MoboleCardDao moboleCardDao = new MobolCardDaoImpl();        MoboleCard moboleCard = new MoboleCard();        System.out.println(moboleCard.getPassword());        System.out.print("请输入卡号:");        String cardNumber = this.scanner.next();        System.out.print("请输入密码:");        String password = this.scanner.next();        try {            this.currentLoginCard = moboleCardDao.login(cardNumber, password);            this.showSecondMenu();        } catch (StatusDisbleException | SQLException | CardOrPasswordNotExitExcepion var6) {            System.out.println("【友情提示】" + var6.getMessage());            this.showFirstMenu();        }    }

三、用户注册页面

private void doRegister() throws StatusDisbleException, SQLException, CardOrPasswordNotExitExcepion {        CardDao cardDao = new CardDaoImpl();        List<Card> cards = cardDao.queryAll();        System.out.println("********可选的卡号**********");        int cardIndex;        for(cardIndex = 0; cardIndex < cards.size(); ++cardIndex) {            System.out.println(cardIndex + 1 + "." + ((Card)cards.get(cardIndex)).getCardNumber() + "\t");            if ((cardIndex + 1) % 3 == 0) {                System.out.println();            }        }        System.out.println("\n请选择卡号(输入序号):");        cardIndex = this.scanner.nextInt();        String cardNumber = ((Card)cards.get(cardIndex - 1)).getCardNumber();        SerpackageTypeDao serpackageTypeDao = new SerpackageTypeDaoImpl();        List<SerpackageType> serpackageTypes = serpackageTypeDao.queryAll();        int typeIdsex;        for(typeIdsex = 0; typeIdsex < serpackageTypes.size(); ++typeIdsex) {            System.out.println(typeIdsex + 1 + "." + ((SerpackageType)serpackageTypes.get(typeIdsex)).getName() + "\t");        }        System.out.println("请选择套餐(输入序号):");        typeIdsex = this.scanner.nextInt();        System.out.println("请输入你的姓名:");        String name = this.scanner.next();        System.out.println("请输入密码:");        String password = this.scanner.next();        System.out.println("请输入预存话费金额:");        double money = this.scanner.nextDouble();        SerpackageDao serpackageDao = new SerpackageDaoImpl();        Integer type = ((SerpackageType)serpackageTypes.get(typeIdsex - 1)).getId();        Serpackage serpackage = serpackageDao.queryByType(type);        while(true) {            double cost = money - serpackage.getPrice();            if (cost >= 0.0D) {                MoboleCardDao moboleCardDao = new MobolCardDaoImpl();                MoboleCard moboleCard = new MoboleCard();                moboleCard.setCardNumber(cardNumber);                moboleCard.setUsername(name);                moboleCard.setPassword(password);                moboleCard.setSerPackage(type);                moboleCard.setMoney(cost);                moboleCardDao.insert(moboleCard);                RechargeRecordDao rechargeRecordDao = new RechargeRecordDaoImpl();                RechargeRecord rechargeRecord = new RechargeRecord();                rechargeRecord.setCardNumber(cardNumber);                rechargeRecord.setAmount(money);                rechargeRecord.setRechargeDate(new Date());                rechargeRecordDao.insert(rechargeRecord);                Card card = (Card)cards.get(cardIndex - 1);                card.setStatus(1);                cardDao.update(card);                System.out.println("注册成功!卡号:" + cardNumber + ",用户名:" + name + "当前余额:" + cost);                System.out.println(((SerpackageType)serpackageTypes.get(typeIdsex - 1)).getName() + ":通话时长:" + serpackage.getTalkTime() + "分钟/月,短信条数为" + serpackage.getSmsCount() + "分钟/月上网流量:" + serpackage.getFlow() + "GB/月。");                this.showFirstMenu();                return;            }            System.out.println("您预存的话费不足以支付本月套餐资费,请重新充值:");            money = this.scanner.nextDouble();        }    }

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值