Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
上次java socket 的问题已解决,这次关于trigger问题了

作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站

解决问题的方法竟然是:

把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啊??

 



相关文章

相关软件