技术开发 频道

一个将SQL语句嵌入Java应用程序的实例

    【IT168 技术】我们在将SQL语句嵌入应用程序时,必须按以下的两个步骤预编译应用程序并将其与数据库联编,步骤如下:

  1.创建源文件,以包含带嵌入式SQL语句的程序。

  格式: # SQL{ SQL语句 } 。

  2.连接数据库,然后预编译每个源文件。

  语法: SQLJ 源文件名。

  实例如下:

import java.sql.*;
import sqlj.runtime.
*;
import sqlj.runtime.ref.
*;
#sql iterator App_Cursor1 (
String empno, String firstnme) ;
#sql iterator App_Cursor2 (
String) ;
class App
{
static  
{  
try  
{  
Class.forName(
"sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void main(String argv[])
{
try
{
App_Cursor1 cursor1;
App_Cursor1 cursor2;
String str1 = null;
String str2 = null;
int count1;
Connection con
= null;
String url = "jdbc:odbc:tese2";
DefaultContext ctx
= DefaultContext.getDefaultContext();
if (ctx == null) {
try {
if (argv.length == 0) {
String userid ="tdl";
String passwd ="user";
con
= DriverManager.getConnection(url, userid, passwd);
}
else if (argv.length == 2) {
// connect with default id/password
con
= DriverManager.getConnection(url);
}
else {
System.out.println(
"Usage: java App [username password]");
System.exit(
0);
}
con.setAutoCommit(
false);
ctx
= new DefaultContext(con);
}
catch (SQLException e) {
System.out.println(
"Error: could not get a default context");
System.err.println(e) ;
System.exit(
1);
}
DefaultContext.setDefaultContext(ctx);
}
#sql cursor1
= { SELECT empno, firstnme from db2admin.employee };
System.out.println(
"Received results:");
while (cursor1.next()) {
str1
= cursor1.empno();
str2
= cursor1.firstnme();
System.out.print (
" empno= " + str1);
System.out.print (
" firstname= " + str2);
System.out.print (
"");
}
cursor1.close();
#sql cursor2
= { SELECT firstnme from db2admin.employee where empno = :str1 };  
System.out.println(
"Received results:");
while (true) {
#sql { FETCH :cursor2 INTO :str2 };
if (cursor2.endFetch()) break;
System.out.print (
" empno= " + str1);
System.out.print (
" firstname= " + str2);
System.out.print (
"");
}
cursor2.close();
// rollback the update
System.out.println(
"Rollback the update...");
#sql { ROLLBACK work };
System.out.println(
"Rollback done.");
}
catch( Exception e )
{
e.printStackTrace();
}
}
}
 

  注:本程序采用JDBCODBC桥的方式访问数据库,必须配置ODBC数据源。

0
相关文章