当前位置:编程学习 > JAVA >>

jsp中用javabean类连接数据库问题. 请各位亲看看.

ODBC连接数据库  

access数据库没问题.如果是连接sqlserver数据库就出问题.

ODBC数据源都是正常的.

javabean类文件如下:DataBase.java

package kygl.util;
import java.sql.*;
public class DataBase{
public Connection conn;
public Statement stmt;
public ResultSet rs=null;
public String sqlStr="";
public DataBase() {
this.connect();
}
public boolean connect(){
try{
//数据库(ODBC)
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
String url ="jdbc:odbc:kygl";                                     //kygl是ODBC数据源名称
conn=DriverManager.getConnection(url,"root","kygl8888");
stmt=conn.createStatement();}catch(Exception ee){System.out.println("connect db error:"+ee.getMessage());return false;
}return true;}

//用于执行查询数据库的操作
//返回查询结果集
public ResultSet execQuery(String sql){
String url ="jdbc:odbc:kygl";                                      //kygl是ODBC数据源名称
ResultSet rs=null;
try {
//ODBC数据源
conn=DriverManager.getConnection(url,"root","kygl8888");
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);

} catch(SQLException ex) {
System.err.println("DataBase.execQuery(): " + ex.getMessage());
}

return rs;
}
//sql执行
public void execute(String sql){
String url ="jdbc:odbc:kygl";                                       //kygl是ODBC数据源名称
try{
//ODBC数据源
conn=DriverManager.getConnection(url,"root","kygl8888");
Statement stmt = conn.createStatement();
stmt.execute(sql);
}catch(SQLException e){e.printStackTrace();}}

public void closeStmt(){
try{
stmt.close();}catch(SQLException e){e.printStackTrace();}
}

public void closeConn(){
try{
conn.close();}catch(SQLException e){e.printStackTrace();}
}
} --------------------编程问答-------------------- 是不是忘记加入sqljdbc.jar包哇. --------------------编程问答--------------------
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

class DBHelper {
private static final String user="sa";
private static final String pwd="sa1";
private static final String url="jdbc:sqlserver://192.168.1.10:1433;databasename=CenterDb";

// private static final String user="zhangwei";
// private static final String pwd="123456";
// private static final String url="jdbc:sqlserver://192.168.1.99:1433;databasename=ytxNewsData";

private static Connection conn=null;
//private static final String url=PropertiesUtil.getValue("jtds_url");
public static Connection getConn(){
try {
if(conn==null||conn.isClosed()){
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//Class.forName("net.sourceforge.jtds.jdbc.Driver");
conn=DriverManager.getConnection(url, user, pwd);
System.out.println(".....成功创建一个新的连接..,conn="+conn);
}
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public static void closeDB(Connection conn,Statement stmt,ResultSet rs){
try {
if(rs!=null){
rs.close();
rs=null;
}
if(stmt!=null){
stmt.close();
stmt=null;
}
if(conn!=null&&!conn.isClosed()){
conn.close();
conn=null;
System.out.println(".....关闭了conn,conn="+conn);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
--------------------编程问答--------------------

Connection con = DBHelper.getConn();
String sql="select * from Data";
Statement stmt = con.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while (rs.next()) {
num=rs.getString(1);
}

这是调用 --------------------编程问答-------------------- javax.servlet.ServletException: [Microsoft][ODBC SQL Server Driver]????????
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.kygl.reg_jsp._jspService(reg_jsp.java:144)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)


root cause 

java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]????????
sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3908)
sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5702)
sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:356)
sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:413)
org.apache.jsp.kygl.reg_jsp._jspService(reg_jsp.java:94)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

--------------------编程问答-------------------- lib目录有sqljdbc.jar

sqlserver是2000 --------------------编程问答-------------------- 很奇怪  写在jsp中可以连接ODBC-sqlserver方式的数据库

<%@ page contentType="text/html;charset=gb2312"   language="java"%>   
<%@ page import="java.sql.*"%>   
<%@ page import="java.io.*"%>   
<%@ page import="java.net.*"%>   
<html>   
<body>   
<%   
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");   
Connection con=DriverManager.getConnection("jdbc:odbc:kygl1","sa","111111");   
Statement state=con.createStatement();   
String sql="select * from yh";   
ResultSet Rs=state.executeQuery(sql);   
out.print(" <h1> <font   color=red> "+"学生基本情况表"+" </h1> ");   
out.print(" <font> ");   
out.print(" <table   border=2> ");   
out.print(" <tr> ");   
out.print(" <th   width=150> "+"学号");   
out.print(" <th   width=150> "+"姓名");   
out.print(" <th   width=150> "+"班级");   
out.print(" </tr> ");   
while(Rs.next())   
{   
      out.print(" <tr> ");   
      out.print(" <td> "+Rs.getInt(1)+" </td> ");   
      out.print(" <td> "+Rs.getString(2)+" </td> ");   
      out.print(" <td> "+Rs.getString(3)+" </td> ");      
      out.print(" </tr> ");   
}   
    out.print(" </table> ");   
    con.close();   
%>   
<br>   
</body>   
</html> 
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,