📄 procthread.java
字号:
/*
* 创建日期 2004-6-9
*
* 更改所生成文件模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
package cmpp2;
import java.util.*;
import java.sql.*;
/**
* @author Administrator
*
* 更改所生成类型注释的模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
public class ProcThread extends Thread
{
ArrayList inal;
ArrayList outal;
boolean procstop;
Recvmsg rm;
Sendmsg sm;
String orgaddr, destaddr, content, send_org, send_dest, msg;
//database
String sDBDriver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@192.168.0.139:1521:dbname"; //192.168.0.139为ip,1521为端口,dbname为数据库名称
String use = "user_name"; //登陆名
String pwd = "user_pwd"; //密码
Connection conn = null;
Statement stmt = null;
public static void main(String[] args)
{
}
public void initProc(ArrayList inal, ArrayList outal, boolean procstop)
{
this.inal = inal;
this.outal = outal;
this.procstop = procstop;
}
public void run()
{
try
{
Class.forName(sDBDriver);
conn = DriverManager.getConnection(url, use, pwd);
}
catch (Exception e)
{
e.printStackTrace();
System.out.println(e);
}
while (!procstop)
{
if (!inal.isEmpty())
{
try
{
//发送相同的回复信息给发送者
rm = (Recvmsg) inal.get(0);
orgaddr = rm.getOrgaddr();
destaddr = rm.getDestaddr();
content = rm.getContent();
System.out.println("proc recv orgaddr=" + orgaddr);
System.out.println("proc recv destaddr=" + destaddr);
System.out.println("proc recv content=" + content);
inal.remove(0);
if (conn.isClosed())
{
Class.forName(sDBDriver);
conn = DriverManager.getConnection(url, use, pwd);
}
stmt = conn.createStatement();
/*int i =
stmt.executeUpdate(
"insert into email_log_record values('"
+ inname
+ "','"
+ inmsg
+ "',sysdate,'in')");*/
// Thread.sleep(1000);
//执行存储过程
CallableStatement proc =
conn.prepareCall("call zw_cmpp_PROC(?,?,?,?,?,?)");
proc.setString(1, orgaddr); //参数 id
proc.setString(2, destaddr); //内容
proc.setString(3, content);
proc.registerOutParameter(4, Types.VARCHAR);
//proc.registerOutParameter(4, Types.VARCHAR);
proc.registerOutParameter(5, Types.VARCHAR);
proc.registerOutParameter(6, Types.VARCHAR);
proc.execute();
sm = new Sendmsg();
send_org = proc.getString(4);
send_dest = proc.getString(5);
msg = proc.getString(6);
proc.close();
System.out.println("proc send orgaddr=" + send_org);
System.out.println("proc send destaddr=" + send_dest);
System.out.println("proc send content=" + msg);
sm.setContent(msg);
sm.setOrgaddr(send_org);
sm.setDestaddr(send_dest);
outal.add(sm);
//发送
/*stmt.executeUpdate(
"insert into email_log_record values('"
+ outname
+ "','"
+ outmsg
+ "',sysdate,'out')");*/
stmt.close();
}
catch (Exception e)
{
e.printStackTrace();
System.out.println(e);
try
{
Class.forName(sDBDriver);
conn = DriverManager.getConnection(url, use, pwd);
}
catch (Exception ex)
{
}
}
}
else
{
try
{
sleep(100);
}
catch (Exception e)
{
}
}
try
{
sleep(10);
}
catch (Exception e)
{
}
}
}
public void stopProc()
{
procstop = true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -