⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 procthread.java

📁 本手册是SMIAS (Short Message Internet Access Solution)短信网关系统SP接入子系统通信接口 Java API的使用指南。它详细介绍了SP-SMIAS网关之间
💻 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 + -