package mywork;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;public class MThread {
public static void main(String args[]) {
new Thread(new SlectTable()).start();
}
}
class SlectTable implements Runnable
//通过实现Runnable接口中的run()方法,再以这个实现了run()方法的类
//为参数创建Thread的线程实例
{
// Thread thread2=new Thread(this);
// 以这个实现了Runnable接口中run()方法的类为参数创建Thread类的线程实例
public SlectTable() {
}// 构造函数 public void run() {
Statement sm = null;
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
System.out.println("驱动程序已加载!!");
// SQL SERVER的登陆方式必须为使用SQL SERVER密码登陆认证方式
Connection con = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://localhost:1433", "sa", "");
con.setCatalog("test");
System.out.println("OK!成功连接到数据库!!");
} catch (ClassNotFoundException e2) {
// TODO 自动生成 catch 块
e2.printStackTrace();
} catch (SQLException e2) {
// TODO 自动生成 catch 块
e2.printStackTrace(); }

try {
ResultSet rs = sm.executeQuery("SELECT id, author, title FROM digest");
if(rs!=null){
ResultSetMetaData rsmd = rs.getMetaData();
System.out.println("这是你要的查询数据!");
System.out.println("观察数据库结果:");
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
System.out.print(rsmd.getColumnName(i) + "\t");
if (i < 3) {
System.out.print("|");
}
}
System.out.println("\n----------------------------------------"); while (rs.next()) {
System.out.print(rs.getInt(1) + "\t");
System.out.print("|");
System.out.print(rs.getString(2) + "\t");
System.out.print("|");
System.out.println(rs.getString(3));
System.out
.println("\n----------------------------------------");
}
System.out.println("Tables Selected Successfully");// 查询数据
}
else 
{
System.out.println("没有数据!");
}
} catch (SQLException e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
}
try {
Thread.sleep(1000);// 挂起1秒
} catch (InterruptedException e) {
return;
}
// 如果该run()方法顺序执行完了,线程将自动结束,而不会被主线程杀掉
// 但如果休眠时间过长,则线程还存活,可能被stop()杀掉
}
}
运行结果如下:
驱动程序已加载!!
OK!成功连接到数据库!!
Exception in thread "Thread-0" java.lang.NullPointerException
at mywork.SlectTable.run(MThread.java:42)
at java.lang.Thread.run(Unknown Source)