java中oracle.链接_简单地java链接oracle数据库

简单地模拟了银行账户之间相互转账的功能,该项目在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);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值