设为首页 收藏本站
查看: 1137|回复: 0

[经验分享] 简单地java链接oracle数据库

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-1-19 08:43:58 | 显示全部楼层 |阅读模式
简单地模拟了银行账户之间相互转账的功能,该项目在java代码中分为了4个包
1、调用数据库的存储过程
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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、数据库链接
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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、封装的实体
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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);
    }
}






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-330459-1-1.html 上篇帖子: 定期从Oracle导数据至MySQL 下篇帖子: Oracle分区交换 oracle 数据库 java
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表