连接数据库的简单问题.
我是java初学者,现正在研究对数据库方面的操作,我装了jb 9,但是在运行下列代码的时候,一直没有成功,我事先已经将一个.mdb文件建立成一个名为TestDbStu的数据源,为什么还是不能成功运行呢,
一想问问大家
在jb中进行access和sql server 方面的数据库操作是不是有的情况也要额外安装驱动程序
二是
有没有对access操作时不使用数据源而通过其绝对地址进行访问的,提供代码者必然加分.
*****************************************************************************************
void firstpageButton_actionPerformed(ActionEvent e) { // 处理“首页”按钮情况
try {
pagenum=1; // 首页所以pagenum设为1
int recordnum=0; // 初始化数据表中的记录数
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // 实例化JDBC-ODBC桥的驱动
String url = "jdbc:odbc:TestDbStu"; // 设置连接字符串
connection = DriverManager.getConnection(url); // 连接数据库
// 创建Statement接口对象
statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
sql = "select * from studentbase ";
// 执行statement对象的executeQuery方法,查询studentbase表,将查询结果放入rs中
rs = statement.executeQuery(sql);
while(rs.next()) {
recordnum++; // 统计数据表中的记录个数
}
// 求得分页显示的页码总数
int t=recordnum%everypagenumber;
if (t!=0)
lastpagenum=(recordnum/everypagenumber+1);
else
lastpagenum=recordnum/everypagenumber;
rs.beforeFirst() ;
String displaypage=pagenum+"/"+lastpagenum;
pagedisplayField.setText(displaypage) ; // 显示当前页码情况
vector.removeAllElements(); // 初始化向量对象
tm.fireTableStructureChanged(); // 更新表格内容
for(int i=1;i<=everypagenumber;i++) {
rs.next();
Vector rec_vector = new Vector();
// 从结果集中取数据放入向量rec_vector中
rec_vector.addElement(String.valueOf(rs.getInt(1)));
rec_vector.addElement(rs.getString(2));
rec_vector.addElement(String.valueOf(rs.getInt(3)));
rec_vector.addElement(rs.getString(4));
rec_vector.addElement(rs.getString(5));
vector.addElement(rec_vector); // 向量rec_vector加入向量vector中
}
tm.fireTableStructureChanged(); // 更新表格,显示向量vector的内容
}
catch(SQLException ex){ // 捕捉异常
System.out.println("\nERROR:----- SQLException -----\n");
while (ex != null) {
System.out.println("Message: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("ErrorCode: " + ex.getErrorCode());
ex = ex.getNextException();
}
}
catch(Exception ex ) {
ex.printStackTrace();
}
finally {
try {
if(statement != null) {
statement.close(); // 关闭Statement接口实例
}
if(connection != null) {
connection.close(); // 关闭Connection接口实例
}
}
catch (SQLException ex) {
System.out.println("\nERROR:----- SQLException -----\n");
System.out.println("Message: " + ex.getMessage( ));
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("ErrorCode: " + ex.getErrorCode());
}
}
}
*****************************************************************************************
问题点数:50、回复次数:3Top
1 楼GJA106(中文字符)回复于 2005-01-25 10:23:43 得分 40
1.访问access可以直接通过以下代码去实现。
try{
String strURL =
"jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};DBQ=MyTest.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection connAcce = DriverManager.getConnection(strURL);
}catch(Exception e){
e.printStackTrace();
}
2.访问msserver通过jdbc去访问。
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url = "jdbc:microsoft:sqlserver://192.168.0.151:1433;DatabaseName=chan";
//pubs为你的数据库的
String user = "sa";
String password = "";
Connection conn = DriverManager.getConnection(url, user, password);
}catch(Exception e){
e.printStackTrace();
}
Top
2 楼drugon(更高,更远,更强)回复于 2005-01-25 10:45:09 得分 10
初学都最好不要用工具,手动去写,到一定程度后再用工具。Top
3 楼nankaijinke(jinke)回复于 2005-01-25 11:26:54 得分 0
呵呵,我是想在手写之前对,整体的实现思路有个体会,多谢楼上的朋友们Top




