一、下载驱动及配置

(以SQL SERVER数据库为例,若是其它数据库,则采用相应的驱动程序;驱动方式采用纯JAVA程序驱动,若采用其它模式,则程序中语句相应要进行调整)

1. 使用纯Java驱动,首先必须获得相应数据库的驱动程序包;

SQLServer JDBC驱动包有两种:sqljdbc.jar和sqljdbc4.jar,根据所使用的JDK版本选择相应的驱动程序。并将完整路径设置到classpath环境变量中,如用开发工具开发程序,还需在开发环境中设置路径。

将sqljdbc4.jar类库文件拷贝到D:\Program Files\Java\jdk1.7.0\jre\lib\ext目录下。(这个路径根据JDK的版本和安装路径确定,下同) 


将sqljdbc4.jar类库文件拷贝到D:\ProgramFiles\Java\jre7\lib\ext目录下( 最好是,只要是jre文件夹,都复制一个sqljdbc4.jarjre7\lib\ext里去!!)


在环境变量classpath 后面添加sqljdbc4.jar的路径。
2. 设置SQLEXPRESS服务器:
    a.打开SQL Server Configuration Manager-> SQLEXPRESS的协议 -> TCP/IP

    b.右键单击启动TCP/IP

    c.双击进入属性,把IP地址中的IP all中的TCP端口设置为1433

    d.重新启动SQLServer 2005服务中的SQLEXPRESS服务器

e.关闭SQL ServerConfiguration Manager

注:可以在命令行窗口中用如下命令查看1433端口是否打开:

Telnet localhost 1433

若执行命令后,窗口左上角有光标闪烁,无其它提示信息,则说明端口已打开。

二、实验内容:

1.  查询student表中所有的数据,并在控制台显示出来,一行显示一个学生的信息。

2.  输入一个学号,如果该学号信息存在,则显示出该学号对应的学生的基本信息,包括学号,姓名,性别,年龄等,以及该学生所选修的课程名称,成绩;若没有该学号对应的信息存在,则输出简单的提示信息。

1.源代码:

import java.sql.*;

public class Test {
 public static void main(String []args){
    System.out.println("database example:");
   Connection conn = null;
      Statement stmt = null;
  try{
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
     String url="jdbc:sqlserver://localhost:1433; DatabaseName=sc";   
     String user="sa";
     String password="12345678"; // 用户名和密码;
     conn= DriverManager.getConnection(url,user,password);
     stmt=conn.createStatement();
     String sql = "select * from student";
     ResultSet rs = stmt.executeQuery(sql);
     while(rs.next())
     {
      for(int i=1;i<=5;i++)
    	  System.out.print(rs.getString(i)+"\t");
      System.out.println();
     } 
  }catch(Exception ex){
   System.out.println(ex.toString());
  }
  finally{
   if(stmt!=null){
    try{
      stmt.close();	
    }catch(Exception ex){}   
   }
   if(conn!=null){
    try{
     conn.close();
    }catch(Exception ex){}   
   }   
  }
  System.out.println("End");
 }
}

2.源代码(修改中):

import java.sql.*;
import java.util.Scanner;
public class Test {
 public static void main(String []args){
    System.out.println("请输入写学号(9位数):");
   Connection conn = null;
      Statement stmt = null;
  try{
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
     String url="jdbc:sqlserver://localhost:1433; DatabaseName=st";   
     String user="sa";
     String password="12345678"; // 用户名和密码;
     conn= DriverManager.getConnection(url,user,password);
     stmt=conn.createStatement();
     int X=0;
     Scanner x= new Scanner(System.in);
     X=x.nextInt();
     String sql = "select * FROM student,sc,course where student.sno=sc.sno and sc.cno=course.cno" ; 
     
     ResultSet rs = stmt.executeQuery(sql);
   
     
     while(rs.next())
     	{int i=1;
    	 if(X==rs.getInt(i)) { 
    		 for(i=1;i<=12;i++) {
    		  
    	 System.out.print(rs.getString(i)+"\t");
    		 }
    	 System.out.println();
    	 }
     	}
  }
  catch(Exception ex){
   System.out.println(ex.toString());
  }
  finally{
   if(stmt!=null){
    try{
      stmt.close();	
    }catch(Exception ex){}   
   }
   if(conn!=null){
    try{
     conn.close();
    }catch(Exception ex){}   
   }   
  }
  System.out.println("End");
 }
}

2源代码执行的结果:


输入指定的学号,如果学号存在的话,输出相应的信息。

第三问还在思考中,应该很快就能写出来了...