数据库的连接与简单的ATM增删查改操作

连接数据库有两种方式,直连和桥连,这里作者只讲一下普遍的直连,桥连读者想知道请自行百度

首先要有驱动软件,笔者的工具很旧

在你的java项目里面创建一个文件夹lib,将jar文件复制到里面,右键点击jar文件→Build Path→Configure Build Path→

添加找到lib目录下的jar文件 确定 则会出现奶瓶,这样驱动就弄好的,下面开始连接

请注意里面所有的包都是java.sql下的 ,其中root是你的mysql账号,610321520是你的mysql的密码,3306是mysql的端口号,localhost是回文地址也可写为127.0.0.1

//加载驱动

Class.forName("com.mysql.jdbc.Driver");

//注册驱动

Connection coo=DriverManager.getConnection("jdbc:mysql://localhost:3306/school","root","610321520");

//产生语句处理对象

Statement sta=coo.createStatement();;连接数据库的重要组成部分

下面就是我做的一个简单的ATM连接数据库

首先在mysql里面创建书库

CREATE DATABASE bank

USE bank

CREATE TABLE users(

u_id INT,

u_name VARCHAR(50),

u_password INT,

u_money DOUBLE)

INSERT INTO users VALUES(1,‘小王‘,111,5000)

INSERT INTO users VALUES(2,‘小花‘,222,5000)

INSERT INTO users VALUES(3,‘小明‘,333,5000)

下面是java代码

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.Scanner;

public class ATM {

public static void main(String[] args) {

Connection con = null;

Statement sta = null;

ResultSet rs = null;

int yh;

int mm;

try {

Class.forName("com.mysql.jdbc.Driver");

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

String url = "jdbc:mysql://localhost:3306/bank";

try {

System.out.println("系统正常运行");

con = DriverManager.getConnection(url, "root", "610321520");

// System.out.println(con);

sta = con.createStatement();

System.out.println("欢迎来到中国银行");

int count = 0;

while(true) {

System.out.println("请输入账号");

Scanner in = new Scanner(System.in);

yh = in.nextInt();

System.out.println("请输入密码");

Scanner in1 = new Scanner(System.in);

mm = in.nextInt();

String sql = "select * from users where u_id = ‘"+yh+"‘ and u_password = ‘"+mm+"‘";

rs = sta.executeQuery(sql);

if(rs.next()) {

break;

}else {

count ++ ;

if(count == 3) {

System.out.println("您输入的次数已超过安全次数,请携带有效证件去柜台取卡");

System.exit(0);

}else {

System.out.println("用户名或密码不正确!");

}

}

}

while(true) {

String s = "select u_name from users where u_id = ‘"+yh+"‘";

rs = sta.executeQuery(s);

String name = null ;

if(rs.next()) {

name = rs.getString("u_name");

System.out.println(name+"先生您好!请选择操作按钮:1.存款 2.取款 3.查询余额 4.修改密码 5.转账  6.退卡");

}

Scanner in = new Scanner(System.in);

int flag = in.nextInt();

if(flag == 1) {

System.out.println("请输入您的存款金额");

Scanner in1 = new Scanner(System.in);

int c_money = in1.nextInt();

String sql = "update users set u_money=u_money + ‘"+c_money+"‘ where u_id=‘"+yh+"‘";

sta.executeUpdate(sql);

System.out.println("存款成功");

}else if(flag == 2) {

System.out.println("请输入你的取款金额");

Scanner in1 = new Scanner(System.in);

int q_money =in1.nextInt();

String  sql1 = "select u_money from users where u_id=‘"+yh+"‘";

rs = sta.executeQuery(sql1);

int money = 0 ;

while(rs.next()) {

money = rs.getInt(1);

}

if(money >= q_money) {

String sql = "update users set u_money=u_money - ‘"+q_money+"‘ where u_id=‘"+yh+"‘";

sta.executeUpdate(sql);

System.out.println("取款成功");

}else {

System.out.println("您的余额不足,请查询余额");

}

}else if(flag == 3) {

String  sql1 = "select u_money from users where u_id=‘"+yh+"‘";

rs = sta.executeQuery(sql1);

int money = 0 ;

while(rs.next()) {

money = rs.getInt(1);

}

System.out.println("您的余额为:" + money + "元");

}else if(flag == 4) {

System.out.println("请输入旧密码");

Scanner in1 = new Scanner(System.in);

int jmm = in1.nextInt();

if(jmm == mm) {

System.out.println("请输入新密码");

Scanner in2 = new Scanner(System.in);

int xmm = in1.nextInt();

String sql = "update users set u_password=‘"+xmm+"‘ where u_id=‘"+yh+"‘";

sta.executeUpdate(sql);

System.out.println("修改密码成功");

}else {

System.out.println("您输入的密码有误,请重新输入");

}

}else if(flag == 5) {

System.out.println("请输入您要转帐的用户");

Scanner in1 = new Scanner(System.in);

String zh1 = in1.next();

System.out.println("请再次输入您要转帐的用户");

Scanner in2 = new Scanner(System.in);

String zh2 = in1.next();

if(zh1.equals(zh2)) {

String sql = "select u_name from users where u_id=‘"+yh+"‘";

rs = sta.executeQuery(sql);

if(rs.next()) {

System.out.println("请输入您要转账的金额");

Scanner in3 = new Scanner(System.in);

int z_money = in3.nextInt();

String  sql1 = "select u_money from users where u_id=‘"+yh+"‘";

rs = sta.executeQuery(sql1);

int money = 0 ;

while(rs.next()) {

money = rs.getInt(1);

}

if(money >= z_money) {

String sql2 = "update users set u_money = u_money-‘"+z_money+"‘ where u_id=‘"+yh+"‘";

sta.executeUpdate(sql2);

String sql3 = "update users set u_money = u_money+‘"+z_money+"‘ where u_id=‘"+zh1+"‘";

sta.executeUpdate(sql3);

System.out.println("转账成功");

}else {

System.out.println("您的余额不足");

}

}else {

System.out.println("您输入的账户不存在");

}

}else {

System.out.println("您输入的账户不一致,请重新输入");

}

}else if(flag == 6) {

System.out.println("谢谢使用!");

System.exit(0);

}else {

System.out.println("暂未开通此服务,敬请期待!");

}

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

try {

if(rs != null) {

rs.close();

}

if(sta != null) {

sta.close();

}

if(con != null) {

con.close();

}

}catch (SQLException e) {

e.printStackTrace();

}

}

}

}

时间: 2024-08-12 04:50:10

数据库的连接与简单的ATM增删查改操作的相关文章

YII数据库增删查改操作

初学YII, 整理了一些YII数据库的相关操作,  共同学习,共同进步. 一.查询数据集合 1 //1.该方法是根据一个条件查询一个集合 2 $admin=Admin::model()->findAll($condition,$params); 3 $admin=Admin::model()->findAll("username=:name",array(":name"=>$username)); 4 5 //2. findAllByPk(该方法是

Sqlite数据库增删查改操作

1.SqliteOpenHelper为数据库抽象类,需创建一个类继承他,其中有onCreate创建数据库的抽象方法和onUpgrade升级数据库方法(一般用不上). 1 //创建数据库的类 2 //SQLiteOpenHelper抽象类 onCreate和onUpgrade抽象方法 3 public class MySqliteHelper extends SQLiteOpenHelper { 4 5 //新建数据库以及表 6 private String SqlCpData="create t

myBatis 实现用户表增删查改操作<方法2 加入接口>(最终版)

这2种方法的区别:1.添加接口 2.运用接口来实现 其他的都一样 添加接口 //接口的名字和xml的名字一样,这样xml中的namespace就不用改 public interface UserMapper { //接口名的方法名一定要和xml中的id名一样 public int count(); public void add(User user); public void update(User user); public void delete(User user); public Lis

myBatis 实现用户表增删查改操作<方法1 没有使用接口的>(最终版)

在UserMapper.xml中添加增删改查 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- 如果我要调用mapper文件,就去拿到names

一般处理程序加简单三层实现增删查改(1)

一般处理程序通常实现IHttpHandler接口,ashx效率比较高效,webform(aspx)比较消耗资源,mvc效率刚好介于两者之间 一般处理程序处理过程(HttpHandler) IIS处理不了这种后缀程序通过映射表将该程序传递给ASPNET_ISAPI.DLL的程序,然后又将请求转给了网站程序网站程序调用HttpRuntime类的静态方法处理请求,有以下步骤:1,实现System.Web.IHttpHandle特殊接口的类实现了该接口的类都能作为一个外部请求的目标程序2,创建 Http

基础入门_Python-模块和包.深入SQLAlchemy之玩转各种增删查改操作?

增加数据: # 单行数据(from sqlalchemy import ...) conn = engine.connect() # 方式一: 调用表对象的insert ins = cookies.insert().values(     cookie_name='chocolate chip',     cookie_recipe_url='http://some.aweso.me/cookie/recipe.html',     cookie_sku='CC01',     quantity

python中关于list列表的增删查改操作

python中list的操#python创建列表的时候,会以堆栈的形式存放数据,从右向左往堆栈中存放数据 movies=["The holy Grail","The life of brain","The meaning of life"] movies=[] #len()表示长度print(len(movies))#python append在列表的末尾添加一个元素movies.append("Gillain")#pytho

java对链表增删查改操作API

从c++方向搞点java副业.结果在静态链表这里绊了一跤.感谢巨人们的肩膀重见天日. 希望后来人少走些弯路. 废话少说,直接贴代码: 1.创建链表的节点类 public class Node { private Node node; private Object eleme; public void setEleme(Object eleme) { this.eleme = eleme; } public Node(){ this.eleme = null;node = null; } publ

Python学习笔记_05:使用Flask+MySQL实现用户登陆注册以及增删查改操作

前言:本文代码参考自两篇英文博客,具体来源点击文末代码链接中文档说明. 运行效果: 首页: 注册页面: 登陆界面: 管理员登陆后界面: 添加.删除.修改和查询员工所在部门信息界面(角色和员工界面类似): 源码链接及说明:https://coding.net/u/LiuZhen1995/p/MyDemo/git/tree/ten/ 附学习过程中参考资料: 1.config配置处理