上次java socket 的问题已解决,这次关于trigger问题了

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

解决问题的方法竟然是:

把BufferWriter换成PrintWrite就可以了,哇靠~ 这是怎么回事??难道BufferWriter和BufferReader有冲突?在BufferReader进行readLine()时,BufferWriter无法flush()和close()?怪怪

程序改成这样就没问题了,我的数据同步平台也可以运作了。

public class ServerThread extends Thread {

private int port;

public ServerThread(int port) {

this.port = port;

}

private boolean stop = false;

public void run() {

try {

ServerSocket server = new ServerSocket(port);

while (!stop) {

Socket client = server.accept();

BufferedReader read = new BufferedReader(new InputStreamReader(client.getInputStream()));

PrintWriter streamWriter = new PrintWriter(client.getOutputStream());//关键是这里

System.out.println("发送欢迎信息");

streamWriter.println("欢迎xx");

streamWriter.flush();//如果用BufferWriter这句话就不起作用,也发不出去,所以客户端也无法收到

String lineStr = read.readLine();

if ("开始".equals(lineStr)) {

System.out.println("开始接受数据!");

while (true) {

lineStr = read.readLine();

if ("结束".equals(lineStr)) {

break;

} else {

System.out.println("数据是" + lineStr);

}

}

}

streamWriter.close();

read.close();

client.close();

}

} catch (IOException ex) {

ex.printStackTrace();

}

}

public static void main(String[] args) {

Thread server = new ServerThread(10020);

server.start();

}

public boolean isStop() {

return stop;

}

public void setStop(boolean stop) {

this.stop = stop;

}

}

现在还遇到一个问题就是用java的jdbc在数据库生成trigger,竟然会报语法出错,不过还是在数据库中生成了trigger,而手工的用PL/SQL工具一运行就好了,这是怎么回事,怪~

具体是这样的:

stmt.executeUpdate(String triggerSql);

数据库schema中生成了trigger,但是报错状态(不是Disable状态)

然后用PL/SQL工具运行这个trigger,竟然没有任何问题

根据出错的提示信息我们发现好像是jdbc的语法不支持比较复杂的SQL,那我们如何用程序生成trigger啊??

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航