Java用jdbc以数据源连接时一个有趣的问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 03:19:24
本人刚学Java,希望大家多看看
package zero;
import java.sql.*;
public class Sqltest {
private Connection con;

/**
* @param args
*/
public static void main(String[] args) {
// TODO
Sqltest test=new Sqltest();
Connection con=test.getConnection();
String sql="select * from teacherinfo";
test.getStudent(con,sql);
}
public void getStudent(Connection con,String sql)
{
try
{
Statement st=con.createStatement();
ResultSet rs=st.executeQuery(sql);
while(rs.next())
{
String name1=rs.getString(1);
String code1=rs.getString(2);
String sexy1=rs.getString(3);
String age1=rs.getString(4);
System.out.println("\n姓名:"+name1+"\t学号:"+code1+"\t性别:"+sexy1+"\t年龄:"+age1);
}
st.close();
con.close();
}
catch(Exception e){e.print

你使用Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");进行反射的时候会产生其他的异常 而你的TRY CATCH只捕获的是SQLException
所以才会出错.解决办法 1:
使用Eclipse 自动修正 结果为:
public Connection getConnection() {
String url1 = "jdbc:odbc:zero";
String username = "sa";
String password = "3227023";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url1, username, password);
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}

二: 索性捕获所有异常

public Connection getConnection() {
String url1 = "jdbc:odbc:zero";
String username = "sa";
String password = "3227023";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverMan