模拟银行转账(java+mysql+tomcat +JDBC+ druid连接池 + Servlet + Ajax)

模拟银行转账

项目准备前提

1.准备数据表
2.准备实验数据
3.jar包准备
4.准备好JDBC工具类

1.准备数据表

创建用户数据表,所需字段有:用户id, 用户姓名, 用户密码, 用户金额.

CREATE TABLE `account` (
  `aid` int(11) NOT NULL AUTO_INCREMENT,
  `uname` varchar(255) DEFAULT NULL,
  `upwd` varchar(255) DEFAULT NULL,
  `balance` decimal(8,2) DEFAULT NULL,
  PRIMARY KEY (`aid`)
) ENGINE=InnoDB;

一个简单数据表创建就完成了

2.准备实验数据
INSERT INTO `account` VALUES (1, 'tesDest','112342', 1200.00);
INSERT INTO `account` VALUES (2, 'segvcw', '223352',680.50);

这边我们插入两条实验数据,用于模拟两个用户.

3.jar包准备

以下是我自己使用的jar包,分别是在项目下的lib目录下和web的项目leb目录下
在这里插入图片描述

注意 : 因为这边是使用web项目所以要先给项目加入web框架
在这里插入图片描述

3.1 加入web框架

选中项目文件夹右键, 点击如图选项:
在这里插入图片描述
勾选如图中的选项,后点击ok
在这里插入图片描述

4.准备JDBC工具类

我们使用JDBC技术时常需要进行许多的重复操作,于是我们可以将一些操作打包成工具类. 方便我们后面的操作.

package com.huawei.util;

import com.alibaba.druid.pool.DruidDataSource;

import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

/**
 * JDBC工具类【加入事务控制  + 线程 + Druid连接池】
 */
public class DBUtils {
   
    static String USER=null;
    static String USER_PASS=null;
    static String DB_URL=null;
    static String DRIVER_CLASS=null;
    private static DataSource dataSource;
    //容器变量       [ThreadLocal用于隔离多线程并发 产生的数据混乱]
    private static ThreadLocal<Connection> local = new ThreadLocal<>();
    /**
     * 静态代码块加载属性配置文件
     */
    static {
   
        Properties config=new Properties();
        try {
   
            //找到文件
            //InputStream is= JdbcUtil.class.getResourceAsStream("/db.properties");
            InputStream is= DBUtils.class.getClassLoader().getResourceAsStream("db.properties");
            //并读取到内存
            config.load(is);
            //读取属性数据的key
            //DB_URL = config.getProperty("jdbc.url");
            //USER = config.getProperty("jdbc.username");
            //USER_PASS = config.getProperty("jdbc.password");
            DRIVER_CLASS = config.getProperty("jdbc.driverClassName");
            //初始化Durid连接池数据源
            DruidDataSource dds = new DruidDataSource();
            dds.configFromPropety(config);//加载属性文件到数据源对象
            dataSource = dds;
        } catch (Exception e) {
   
            e.printStackTrace();
        }
    }

    public static DataSource getDataSource(){
   
        return dataSource;
    }

    /**
     * 注册驱动
     */
    static {
   
        try {
   
            Class.forName(DRIVER_CLASS);
        } catch (ClassNotFoundException e) {
   
            e.printStackTrace();
        }
    }

    /**
     * 获取链接对象
     * @return
     */
    public static Connection getConn(){
   
        if(local.get()==null) {
   //当前线程是否有连接对象
            Connection conn = null;
            try {
   
                //conn = DriverManager.getConnection(DB_URL, USER, USER_PASS);
                conn = dataSource.getConnection();
                local.set(conn);//放入当前线程对象中
            } catch (Exception e) {
   
                e.printStackTrace();
            }
            //return conn;
        }
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值