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]
这是我的代码,但是显示不出结果。。
[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]
这是我的代码,但是显示不出结果。。
可以单步调试
先把name...等信息打印出来。估计放数组有问题。
/*
* 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();
}
}
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')
这是表的内容
打印数组和变量
最基本的调试方法,数组里面的问题。