银行系统---数据库连接修改

1.开户功能

public void kaihu() {

        // 开户方法
        //输入姓名
        Cuxuka cxk=new Cuxuka();
        try{
        Scanner sc1=new Scanner(System.in);
        System.out.println("请输入你的姓名:");
        String st=sc1.nextLine();
        cxk.setName(st);
        //输入身份证
        System.out.println("请输入你的身份证号:");
        for(int ig=0;ig>=0;ig++)
        {
            Scanner sc2=new Scanner(System.in);
            String str=sc2.nextLine();
            String st1="\\d{15}|\\d{17}[\\dxX]";
            if(str.matches(st1))
            {
                cxk.setShenfen(str);
                break;
            }
            else
            {
                System.out.println("输入的身份证号不是18位身份号");
            }
        }
        //设置账户密码
        System.out.println("请输入你的密码:");
        for(int ig=0;ig>=0;ig++)
        {
            Scanner sc3=new Scanner(System.in);
            String pass=sc3.nextLine();
            String mm="\\d{6}";
            if(pass.matches(mm))
            {
                cxk.setPassword(pass);
                break;
            }
            else
            {
                System.out.println("请输入正确的6位数密码");
            }
        }
        //生成6位数储蓄卡号
        Random a=new Random();
        int[] ch=new int[6];
        StringBuilder str=new StringBuilder();
        String s;
        for(int i=0;i<6;i++)
        {
            ch[i]=a.nextInt(9);
        }

        for(Integer c:ch)
        {
        str.append(c);
        }
        s=str.toString();
        cxk.setCard(s);
        System.out.println("您的新卡号为:"+cxk.getCard());

        //打开驱动
        Class.forName("oracle.jdbc.driver.OracleDriver");

        //获取数据库连接
        String url="jdbc:oracle:thin:@localhost:1521:orcl";
        Connection conn=DriverManager.getConnection(url, "test01", "123456");

        //获取数据库声明
        Statement sm=conn.createStatement();
        sm.executeUpdate("insert into bank values(‘"+cxk.getName()+"‘,‘"+cxk.getShenfen()+"‘,‘"+cxk.getCard()+"‘,‘"+cxk.getBalance()+"‘,‘"+cxk.getPassword()+"‘)");

        System.out.println("开户成功,谢谢使用");
        sm.close();
        conn.close();
        /*
        //将生成的数据导入银行卡list列表中
        Yinhanglei.getYinhangLei().list.add(cxk.getCard());

        //将生成的数据导入银行卡Map列表中
        Yinhanglei.getYinhangLei().map.put(cxk.getCard(), cxk);*/

        }catch (Exception e) {
            System.out.println("输入有误");
        }

    }
    

查询功能:

//查询方法
    public void chaxun(){
        while(true){
        try{
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入你要查询的卡号:");
            String s=sc.nextLine();
            // 访问数据库
            //1、加载驱动:加载数据库提供的驱动类
             Class.forName("oracle.jdbc.driver.OracleDriver");

              //2、获取数据库连接,通过java的驱动管理器
             //url-数据库地址,不同的数据库写法不一样;user-用户名;password-密码
              Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl ","test01", "123456");
             String sql="select * from bank where ba_card=? ";
             PreparedStatement ps=conn.prepareStatement(sql);
             ps.setString(1, s);
             ResultSet rs=ps.executeQuery();
             if(rs.next())
             {
                String pw= rs.getString("ba_password");
                Scanner sc1=new Scanner(System.in);
                System.out.println("请输入卡号密码:");
                String s1=sc.nextLine();

                if(pw.equals(s1))
                {
                    System.out.println("你查询的账号信息为:");
                    System.out.println();
                    System.out.println("******************************");
                    System.out.println();
                    System.out.println("姓名  身份证号    卡号   金额");
                    System.out.println();
                    System.out.println(rs.getString("ba_name")+" "+rs.getString("ba_shenfen")+" "+rs.getString("ba_card")+" "+rs.getString("ba_balance"));
                    break;
                }
                else
                {
                    int i=0;
                    i++;
                    if(i==3)
                    {
                        System.out.println("密码输入错误超过3次");
                        break;
                    }
                    else
                    {
                        System.out.println("密码输入有误");
                    }
                }
                rs.close();
                ps.close();
                conn.close();
                break;
            }

            else
            {
                System.out.println("卡号输入有误请确认");
            }

        }catch (Exception e) {
            System.out.println("输入有误");
        }
        break;
        }
    }

3.存款功能

public void cun() {
        while(true)
        {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你要查询的卡号:");
        String s=sc.nextLine();
        // 访问数据库
        //1、加载驱动:加载数据库提供的驱动类
         try {
            Class.forName("oracle.jdbc.driver.OracleDriver");

          //2、获取数据库连接,通过java的驱动管理器
         //url-数据库地址,不同的数据库写法不一样;user-用户名;password-密码
          Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl ","test01", "123456");
         String sql="select * from bank where ba_card=? ";
         PreparedStatement ps=conn.prepareStatement(sql);
         ps.setString(1, s);
         ResultSet rs=ps.executeQuery();
         if(rs.next())
         {
            String pw= rs.getString("ba_password");
            Scanner sc1=new Scanner(System.in);
            System.out.println("请输入卡号密码:");
            String s1=sc.nextLine();

            if(pw.equals(s1))
            {
                System.out.println("你查询的账号信息为:");
                System.out.println();
                System.out.println("******************************");
                System.out.println();
                System.out.println("姓名  身份证号    卡号   金额");
                System.out.println();
                System.out.println(rs.getString("ba_name")+" "+rs.getString("ba_shenfen")+" "+rs.getString("ba_card")+" "+rs.getString("ba_balance"));
            }
            else
            {
                int i=0;
                i++;
                if(i==3)
                {
                    System.out.println("密码输入错误超过3次");
                    break;
                }
                else
                {
                    System.out.println("密码输入有误");
                }
            }
         }
         else
            {
                System.out.println("卡号输入有误请确认");
            }

         while(true)
         {
        Scanner sc2=new Scanner(System.in);
        System.out.println("请输入你要存入的金额:");
        double cun=sc2.nextDouble();
        // 实现存款方法
         if(cun<0)
         {
             System.out.println("你输入的数据无效,系统将自动退出!谢谢使用");
         }
         else
         {

             try {
                Class.forName("oracle.jdbc.driver.OracleDriver");

              //2、获取数据库连接,通过java的驱动管理器
             //url-数据库地址,不同的数据库写法不一样;user-用户名;password-密码
              Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl ","test01", "123456");

              Statement sm=con.createStatement();
              balance=rs.getDouble("ba_balance");
              balance+=cun;
              String sql1="update bank set ba_balance=‘"+balance+"‘where ba_card=‘"+s+"‘";
             sm.executeQuery(sql1);
             Statement rl=con.createStatement();
             String sql2="select ba_balance from bank where ba_card=‘"+s+"‘";
             ResultSet rt=rl.executeQuery(sql2);
             System.out.println("存款成功,剩余金额"+rs.getDouble("ba_balance"));
             sm.close();
             con.close();
             conn.close();
             rs.close();
             ps.close();
             break;
             } catch (Exception e) {
                    // TODO 自动生成的 catch 块
                    e.printStackTrace();
                    continue;
                }
         }
         }
     } catch (Exception e1) {
            // TODO 自动生成的 catch 块
            e1.printStackTrace();
            continue;
        }

        }
 }

4.取款功能

public void qu() {
        try{
            while(true)
            {
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入你要查询的卡号:");
            String s=sc.nextLine();
            // 访问数据库
            //1、加载驱动:加载数据库提供的驱动类
             Class.forName("oracle.jdbc.driver.OracleDriver");

              //2、获取数据库连接,通过java的驱动管理器
             //url-数据库地址,不同的数据库写法不一样;user-用户名;password-密码
              Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl ","test01", "123456");
             String sql="select * from bank where ba_card=? ";
             PreparedStatement ps=conn.prepareStatement(sql);
             ps.setString(1, s);
             ResultSet rs=ps.executeQuery();
             if(rs.next())
             {
                String pw= rs.getString("ba_password");
                Scanner sc1=new Scanner(System.in);
                System.out.println("请输入卡号密码:");
                String s1=sc.nextLine();

                if(pw.equals(s1))
                {
                    System.out.println("你查询的账号信息为:");
                    System.out.println();
                    System.out.println("******************************");
                    System.out.println();
                    System.out.println("姓名  身份证号    卡号   金额");
                    System.out.println();
                    System.out.println(rs.getString("ba_name")+" "+rs.getString("ba_shenfen")+" "+rs.getString("ba_card")+" "+rs.getString("ba_balance"));
                }
                else
                {
                    int i=0;
                    i++;
                    if(i==3)
                    {
                        System.out.println("密码输入错误超过3次");
                        break;
                    }
                    else
                    {
                        System.out.println("密码输入有误");
                    }
                }
            }

            else
            {
                System.out.println("卡号输入有误请确认");
            }

        Scanner sc1=new Scanner(System.in);
        System.out.println("请输入你要取款的金额:");
        double qu=sc1.nextDouble();
                Class.forName("oracle.jdbc.driver.OracleDriver");

              //2、获取数据库连接,通过java的驱动管理器
             //url-数据库地址,不同的数据库写法不一样;user-用户名;password-密码
              Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl ","test01", "123456");

              Statement sm=con.createStatement();
              balance=rs.getDouble("ba_balance");
            // 实现取款方法
            if(qu<balance)
            {
                    balance-=qu;
                      String sql1="update bank set ba_balance=‘"+balance+"‘where ba_card=‘"+s+"‘";
                     sm.executeQuery(sql1);
                     Statement rl=con.createStatement();
                     String sql2="select ba_balance from bank where ba_card=‘"+s+"‘";
                     ResultSet rt=rl.executeQuery(sql2);
                     System.out.println("取款成功,剩余金额"+rt.getDouble("ba_balance"));
                     sm.close();
                     con.close();
                     conn.close();
                     rs.close();
                     ps.close();
            }

            else if(qu<0)
            {
                System.out.println("你输入的数据无效,系统将自动退出!谢谢使用");;
            }
            else
            {
                System.out.println("余额不足");
            }
            }
            } catch (Exception e) {
                // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
    }

结果:

时间: 2024-08-26 04:53:10

银行系统---数据库连接修改的相关文章

谈程序的腐化

写代码如同打扫屋子,有句话叫一屋不扫何以扫天下.如果单个的一个模块代码都不能管好,如何成就一个完善的软件系统? 写代码如同打扫屋子,有句话叫一屋不扫何以扫天下.如果单个的一个模块代码都不能管好,如何成就一个完善的软件系统? 今天我们来说说,一个代码模块的代码是如何一步步腐化变质,到最后程序员都不愿意去维护它,然后要么重构,要么废弃换新模块的? 代码是有一定的周期的,这个没有错.为什么有的代码跑上几十年仍然好用,而现在互联网公司的很多代码,每年都要做好几次重构?一个成立2年的互联网公司,做一个支付

SQLite剖析之异步IO模式、共享缓存模式和解锁通知

1.异步I/O模式    通常,当SQLite写一个数据库文件时,会等待,直到写操作完成,然后控制返回到调用程序.相比于CPU操作,写文件系统是非常耗时的,这是一个性能瓶颈.异步I/O后端是SQLite的一个扩展模块,允许SQLite使用一个独立的后台线程来执行所有的写请求.虽然这并不会减少整个系统的资源消耗(CPU,磁盘带宽等),但它允许SQLite在正在写数据库时立刻返回到调用者,从用户角度看,无疑提高了前端的响应速度.对异步I/O,写请求在一个独立的后台线程中被处理,这意味着启动数据库写操

Python(SQLAlchemy-ORM)模块之mysql操作

一.SQLAlchemy简单介绍 SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果. SQLAlchemy“采用简单的Python语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型”.SQLAlchemy的理念是,SQL数据库的量级和性能重要于对象集合:而对象集合的抽象又重要于表和行.因此,SQLAlchmey采用了类似于Java里H

在idea intellij中使用Sonarqube进行代码检查

Sonarqube是一个功能非常强大的代码质量检查.管理的工具.能够识别多种常用的编程语言,并能够通过设置不同的Rule Sonar是一个代码质量管理的开源工具,它通过插件的形式能够识别常见的多种编程语言(例如Java, C#, PHP, Pythod等)代码质量问题.Sonar可以帮你分析出以下代码质量问题: 1.不遵循代码标准 2.潜在的缺陷 3.代码重复 4.注释率不足或过高 5.糟糕的复杂度分布 6.缺乏单元测试 在公司中,一般是把Sonarqube布置在服务器端,当开发人员提交代码时,

php 连接mysql

@屏蔽错误信息,error_reporting(0),也是屏蔽错误信息 连接数据库时,如有有错就报错误信息 $m[email protected]new mysqli('localhost','rootr','','db'); $m->set_charset('utf8'); if($m->connect_error){ echo $m->connect_error; exit; } $m->close();//关闭数据库连接 不提示警告错误error_reporting(0);

调优过程

性能调优 1 百胜表规范 USE ERP_DW GO /* 功能说明: 创建[区域]维度表 修改说明: Create by LY on 2011-09-07 */ IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE id = OBJECT_ID('Dim_Area') AND type = 'U') BEGIN DROP TABLE Dim_Area END GO CREATE TABLE [dbo].[Dim_Area] ( AreaCode VARCHAR(2

windows下jenkins常见问题填坑

没有什么高深的东西,1 2天的时间大多数人都能自己摸索出来,这里将自己遇到过的问题分享出来避免其他同学再一次挖坑. 目录 1. 主从节点 2. Nuget自动包还原 3. powershell部署 4. 内网机器实现基于变化的构建 5. Github私有项目pull时限 所谓主从,主要应用的场景例如多种环境(windows/linux,.net/java/php)需要不同的构建基础,而我们又不想都将一系列的步骤和环境混杂在一台构建服务器上,所以类似于go中的代理,jenkins也提供了slave

up7.1-asp.net-本地测试教程

1.1. ASP.NET 框架:.NET Framework 4.5 依赖库:csredis,Newtonsoft.Json   安装redis 下载 redis-x64:http://pan.baidu.com/s/1nuEmgkT   启动redis   创建数据库 demo中的脚本是SQL2005,使用sql目录下的脚本创建数据表. 说明:up7中取消了存储过程   修改数据库连接 修改数据库帐号和密码(Web.config)   修改上传地址 说明:必须将DEMO布署到IIS中进行测试,

修改PDF.NET SOD源代码以支持加密的数据库连接字符串

看了下PDF.NET SOD的代码,好像数据库连接字符串,只支持明文写在config文件的.这在一定程度上存在数据库账号密码泄漏的风险,于是鼓捣了源代码中的PWMIS.DataProvider.Adapter.MyDB类,让PDF.NET SOD能读取加密过的字符串. 首先上加密解密类代码: using System; using System.Security.Cryptography; using System.Text; namespace Cxw.Common { /// <summar