java cobra_java实现CORBA

1.      利用CORBA实现数据的访问,也就是通过客户端的代码,访问服务器端的代码。首先是定义一个idl文件,里面的主要类型就是定义一个接口,类容如下:

1336615167_8122.png

2.      然后利用idlj –fall DataService.idl 命令来编译idl文件,编译后得到了许多的java文件,文件如下所示:

1336615173_9776.png

再然后,在该文件中建立一个Server文件夹,然后将生成的文件放入,并且建立一个java功能,作为服务器端,这里要求从数据库读取数据,所以我们写了一个DBManager类来实现与数据库的连接,以及插入、查询功能:里面的代码如下:

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.ResultSet;

importjava.sql.SQLException;

publicclass DBManager {

private static String user ="root";

private static String pass ="962464";

private static String className="com.mysql.jdbc.Driver";

private static String url ="jdbc:mysql://localhost:3306/students";

private static Connection conn;

private static java.sql.Statement state;

public static void init()

{

try {

Class.forName(className);

conn =DriverManager.getConnection(url,user,pass);

state =conn.createStatement();

} catch (ClassNotFoundException e) {

// TODO Auto-generated catchblock

e.printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catchblock

e.printStackTrace();

}

}

public static void CreateTable(){

String sql = "create tablestuScore ( num char(20) Primary key,score double);";

try {

state.execute(sql);

} catch (SQLException e) {

e.printStackTrace();

}

}

public static void insert(String num,doublescore)

{

String sql = "insert intostuScore values("+"'"+num+"',"+score+");";

try {

state.execute(sql);

} catch (SQLException e) {

// TODO Auto-generated catchblock

e.printStackTrace();

}

}

public static double select(String num)

{

String sql = "select score from stuScore where num= '"+num+"';";

double result= 0;

try {

ResultSet rs =state.executeQuery(sql);

while(rs.next())

{

result = rs.getDouble("score");

}

} catch (SQLException e) {

// TODO Auto-generated catchblock

e.printStackTrace();

}

return result;

}

}

3.      然后就是编写服务器端的代码,在服务器端里面有一个类实现定一个的接口里面的代码如下:

class DataServiceImpl extends DataServicePOA {

private ORB orb ;

private studentScore s =new studentScore();

publicvoid setorb(ORB orb)

{

this.orb = orb;

}

@Override

publicvoid insert(String num, double score) {

DBManager.insert(num, score);

}

@Override

publicdouble select(String num) {

return DBManager.select(num);

}

@Override

publicvoid selectAll() {

// TODO Auto-generatedmethod stub

}

}

这样服务器端提供的功能都实现了,然后在服务端创建服务对象并将其向ORB注册这样服务端的代码就写好了。

4.      下面就是写客户端的代码,和前面一个将生成的文件加入到客户端文件中,然后编写一个客户端文件,主要是实现数据初始化,并且连接服务程序,这里面需要输入IOR码,并且必须和服务器端产生的一样,这样才能得到服务端的服务,得到服务对象之后就是对服务端的方法的调用实现数据的插入和查询操作。

5.      下面就将运行的过程演示一遍:

首先是启动服务端:

1336615184_5015.png

然后就是运行客户端:

1336615190_4116.png

等待用户输入IOR码.(是由服务器端产生的),然后输入IOR码:

1336615196_2986.png

然后就是根据数字选择操作开始调用方法了,我们随便来演示几个:

1336615198_2289.png

插入成功,然后我们查询一下看看是不是正确的:

1336615201_7393.png

然后为了保证是正确的我们再去数据库中看看:

1336615204_4286.png

数据库中也有我们插入的数据,说明是正确的。

这样我们就完成了java开发CORBA的过程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值