我的程序里面有个DBO.java,进行数据库连接以及操作的。
代码如下:
package com.yxq.bean;import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class DBO {
private String url;
private String classname;
private String username;
private String password;
private CreatePage createpage; private Connection con;
private Statement stm;
private ResultSet rs;

public DBO(){
System.out.println("数据库连接");
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_FABD01";
classname="com.microsoft.jdbc.sqlserver.SQLServerDriver";
username="sa";
password="sa";
createpage=new CreatePage();
} private void LoadDriver(){
try{
Class.forName(classname);
}catch(ClassNotFoundException e){
System.out.println("加载驱动程序失败!");
e.printStackTrace();
}
}

private Connection getCon(){
LoadDriver();
try{
con=DriverManager.getConnection(url,username,password);
}catch(Exception e){
System.out.println("创建数据库连接失败!");
e.printStackTrace();
}
return con;
}

private Statement getStm(){
getCon();
try{
    stm=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
}catch(Exception e){
System.out.println("创建Statement对象失败!");
e.printStackTrace();
}
return stm;
} public ResultSet getRs(String sql){
getStm();
try{
rs=stm.executeQuery(sql);
}catch(Exception e){
System.out.println("查询数据库失败!");
e.printStackTrace();
}
return rs;
} public List getCurrentList(int currentP){
String sql="select * from tb_object";
List<SingleObject> currentlist=new ArrayList<SingleObject>();
ResultSet rs=getRs(sql);
try{
if(rs.next()){
rs.last();
createpage.setAllR(rs.getRow());
createpage.setCurrentP(currentP);
int pos=createpage.getPosR();
int i=1;
rs.absolute(pos);
rs.previous();
while(rs.next()&&i<=createpage.getPerR()){
SingleObject single=new SingleObject();
single.setId(rs.getInt("id"));
single.setName(rs.getString("object_name"));
single.setPrice(rs.getFloat("object_price"));
single.setImgpath(rs.getString("object_imgpath"));
single.setHave(rs.getInt("object_have"));
single.setTruehave(single.getHave());
single.setBuyN(0);
single.setMessage("");
currentlist.add(single);
i++;
}
}
}catch(Exception e){
System.out.println("查询分页数据失败!");
e.printStackTrace();
}
finally{
closed();
}
return currentlist;
}
//下面无关代码省略
可能有点长。将就着看下啦。
我在进行链接尝试的时候,报出“用户'sa'连接登录失败”。然后下面就各种失败,什么创建Statement对象失败之类的。我数据库是用SQL2000 sp4,登录模式是SQL server和windows混合登录。SQL server帐号密码都是sa。三个jar包已经放在了tomcat的lib目录下。服务器就是tomcat6.0。另外就是,我在同一个项目下面新建了一个test.jsp页面,直接在页面测试链接,就可以成功地拿到数据库里面的数据了
<body>
  <% Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
   String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_FABD01";
   String user="sa";
   String password="sa";
   Connection conn= DriverManager.getConnection(url,user,password);
   Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
   String sql="select * from tb_object";
   ResultSet rs=stmt.executeQuery(sql);
   while(rs.next()) { %>
    商品序号:<%=rs.getString(1)%><br>
    商品名称:<%=rs.getString(2)%><br>
    商品价格:<%=rs.getString(3)%><br>
    图片:<%="/image/buy/"+rs.getString(4)%><br>
    库存还有:<%=rs.getString(5)%>件<br>
    <hr>
    
  <% } %>
  <% out.print("数据库操作成功,恭喜你"); %>
  <% rs.close();
   stmt.close();
   conn.close();
  %>
  </body>想了很久,都没想出个所以然。也在论坛查找过答案,但是没有成果。求解答。