简单地模拟了银行账户之间相互转账的功能,该项目在java代码中分为了4个包

1、调用数据库的存储过程

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import entity.UserInfo;
import util.DBUtil;

public class Dao {
	private static Connection conn = DBUtil.getConn();//链接数据库
	CallableStatement cs = null;//预编译
	public String getConn(UserInfo u){
		String str = null;//定义一个字符串用来接收返回的字符串
		//调用oracle中的名为zhuanzhang 的存储过程
		String sql = "{call zhuangzhang(?,?,?,?)}";
		try {
			cs = conn.prepareCall(sql);
			cs.setInt(1, u.getUuid());
			cs.setDouble(2, u.getMoney());
			cs.setInt(3, u.getIdd());
			cs.registerOutParameter(4, java.sql.Types.VARCHAR);
			cs.execute();
			//将从数据库获得的值存入str并返回
			str = cs.getString(4);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return str;
	}
	
}

2、数据库链接

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * 链接数据库的类
 * @author Administrator
 *
 */
public class DBUtil {
	 private static Connection conn = null;//链接
	 
	 private static String url =  "jdbc:oracle:" + "thin:@127.0.0.1:1521:orcl";// 127.0.0.1是本机地址,XE是精简版Oracle的默认数据库名
	 //使用的Scott账户,密码设置为root 其中在实验中给了scott用户dba权限
	 private static String user = "scott";
	 private static String password = "root";
	 
	 
	 public static Connection getConn(){
		  try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}// 加载Oracle驱动程序
		  try {
			conn = DriverManager.getConnection(url, user, password);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}// 获取连接
		  return conn;
	 }
}

3、封装的实体

public class UserInfo {
	private int uuid; //转出账户的id
	private double money;//转出的金额
	private int idd;    //接收转账的id
	public int getUuid() {
		return uuid;
	}
	public void setUuid(int uuid) {
		this.uuid = uuid;
	}
	public double getMoney() {
		return money;
	}
	public void setMoney(double money) {
		this.money = money;
	}
	public int getIdd() {
		return idd;
	}
	public void setIdd(int idd) {
		this.idd = idd;
	}
	
}

4、代码执行的入口,此处直接使用的main方法

import java.util.Scanner;

import dao.Dao;
import entity.UserInfo;

public class Test {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("欢迎来到自助银行,请输入你的账号:");
		UserInfo u = new UserInfo();
		Dao d = new Dao();
		u.setUuid(sc.nextInt());
		System.out.println("请输入要转的金额:");
		u.setMoney(sc.nextDouble());
		System.out.println("请输入对方账号:");
		u.setIdd(sc.nextInt());
		//将对象放入dao内的getConn方法中,得到返回的str值
		String str = d.getConn(u);
		System.out.println(str);
	}
}