sql  数据库使用的windows身份验证,在java下应该怎么链接数据库,高手指导……
[code=try {
         Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//建立桥接器
        }catch(ClassNotFoundException e){}
        try {
          con=DriverManager.getConnection("jdbc:odbc:master","sa",""); //连接数据库
            sql=con.createStatement();     //创建SQL语句
          rs=sql.executeQuery("Select * From MovieStar");//显示表中的全部记录
          while(rs.next()) {  //处理查询过程
            String name=rs.getString("name");//从数据库表中取出一个记录的学号字段
            String address = rs.getString("address");
            String gender = rs.getString("gender");
            String bir = rs.getString("birthday");
            a[i][0] = name;  //将学号字段写人表格中
            a[i][1] = address;
            a[i][2] = gender;
            a[i][3] = bir;][/code]
这是我的代码,但是显示不出结果。。

解决方案 »

  1.   

    第二个try怎么没有catch
    可以单步调试
      

  2.   

    语句应该没问题
    先把name...等信息打印出来。估计放数组有问题。
      

  3.   

    下面是全部代码
    /*
     * Main.java
     *
     * Created on 2008年12月5日, 上午9:51
     *
     * To change this template, choose Tools | Template Manager
     * and open the template in the editor.
     */package jdbc;import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.Statement; 
    import javax.swing.*;
    import java.awt.*;
    import java.sql.*;
    import java.awt.event.*;/**
     *
     * @author qgf
     */
    public class Main {
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
        new fwin();
      }
    }
    class fwin extends JFrame implements ActionListener {
      JTable  table;
      JButton  b1, b2, b3, b4;
      Object  a[][];
      Connection  con; Statement  sql; ResultSet  rs;
      Object  columnName[]={"name","address","gender","birthday"};
      fwin(){
        super("数据库查询");
        a = new Object[60][4];
        table = new  JTable(a, columnName);
        setSize(500,500);
        b1 = new  JButton("浏览表");
        b2 = new  JButton("排序查询");
        b3 = new  JButton("模糊查询");
        b4 = new  JButton("退出");
        b1.addActionListener(this);  //给按钮b1设里监视器
        b2.addActionListener(this);
        b3.addActionListener(this);
        b4.addActionListener(this);
        Container con = getContentPane();  //创建一个面板
        con.setLayout(new FlowLayout());  //设置面板的布局
        con.add(b1);   //将按钮b1放到面板上
        con.add(b2);
        con.add(b3);
        con.add(b4);
        Container container = getContentPane(); //创建一个面板
        container.add(new JScrollPane(table),BorderLayout.CENTER); //添加滚动窗口到面板上
        setVisible(true);   //设里窗体可见
        validate();    //设置窗体上的组件可见
        addWindowListener(new WindowAdapter() {    //关闭窗口
          public void windowClosing(WindowEvent e)
            {System.exit(0); }});
        }
        int i = 0;
        public void actionPerformed(ActionEvent ev) { //引发按钮事件
          if(ev.getSource() == b1) {   //浏览表
            while(i>=0) {   //清空上次查询结果
              a[i][0] = "";
              a[i][1] = "";
              a[i][2] = "";
              a[i][3] = "";
              i--;
            }
            i = 0;
            try {
             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//建立桥接器
            }catch(ClassNotFoundException e){}
            try {
              con=DriverManager.getConnection("jdbc:odbc:master","sa",""); //连接数据库
            sql=con.createStatement();     //创建SQL语句
              rs=sql.executeQuery("Select * From MovieStar");//显示表中的全部记录
              while(rs.next()) {  //处理查询过程
                String name=rs.getString("name");//从数据库表中取出一个记录的学号字段
                String address = rs.getString("address");
                String gender = rs.getString("gender");
                String bir = rs.getString("birthday");
                a[i][0] = name;  //将学号字段写人表格中
                a[i][1] = address;
                a[i][2] = gender;
                a[i][3] = bir;
                i++;
              }
              con.close();
              repaint();   //刷新
            }catch(SQLException e){ }
          }
        else if( ev.getSource() == b2) {//排序查询
          while( i>=0 ) {   //清空上次查询结果
            a[i][0]="";
            a[i][1]="";
            a[i][2]="";
            a[i][3]="";
            i--;
          }
          i = 0;
          try{
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//建立桥接器
          }catch(ClassNotFoundException e) { }
          try{
            con=DriverManager.getConnection("jdbc:odbc:master"); //连接数据库
            sql=con.createStatement();  //创建SQL语句
            rs=sql.executeQuery("Select * From MovieStar ORDER BY birthday");//按数学成绩排序
            while(rs.next()) {   //处理查询过程
              String name=rs.getString("name");//从数据库表中取出一个记录的学号字段
                String address = rs.getString("address");
                String gender = rs.getString("gender");
                String bir = rs.getString("birthday");
                a[i][0] = name;  //将学号字段写人表格中
                a[i][1] = address;
                a[i][2] = gender;
                a[i][3] = bir;
              i++;
            }           
            con.close();
            
            repaint();   //刷新
          }catch(SQLException  e){}
        } 
       else if( ev.getSource() == b3){  //模糊查询
          while( i>=0 ) {    //清空上次查询结果
            a[i][0] = "";
            a[i][1] = "";
            a[i][2] = "";
            a[i][3] = "";
            i--;
          }
          i = 0;
          try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  //建立桥接器
          }catch(ClassNotFoundException e) {}
          try {
            con = DriverManager.getConnection("jdbc:odbc:master","sa",""); //连接数据库
            sql = con.createStatement();  //创建SQL语句
            rs = sql.executeQuery("Select * From  MovieStar WHERE name Like '王%'"); //显示王姓学生
            while(rs.next()) {   //处理查询过程
               String name=rs.getString("name");//从数据库表中取出一个记录的学号字段
                String address = rs.getString("address");
                String gender = rs.getString("gender");
                String bir = rs.getString("birthday");
                a[i][0] = name;  //将学号字段写人表格中
                a[i][1] = address;
                a[i][2] = gender;
                a[i][3] = bir;
              i++;
            }
             con.close();
            
            repaint();   //刷新
          }catch(SQLException e) {}
        }
        else if(ev.getSource() == b4)   //退出
          dispose();
        }
     
    }
      

  4.   

    INSERT INTO MovieStar(name,address,gender,birthday)
          VALUES('FEIWENLI','WASHINGTON STREET 45','F','19300405')
        INSERT INTO MovieStar(name,address,gender,birthday)
          VALUES('蒋雯莉','北京朝阳','F','19450405')
        INSERT INTO MovieStar(name,address,gender,birthday)
             VALUES('王刚','香港九龙','M','19421024')
        INSERT INTO MovieStar(name,address,gender,birthday)
             VALUES('高曙光','上海中山','M','19500815')
    这是表的内容
      

  5.   

    加System.out.print语句
    打印数组和变量
    最基本的调试方法,数组里面的问题。