package gs.dbc;import java.sql.Connection;
import java.sql.DriverManager;import java.sql.*;import java.sql.ResultSet;
import java.sql.SQLException;public class testDB {
private static Connection conn;
private static Statement st;
private static ResultSet rs;
public static Connection getConn(){

try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

String url="jdbc:sqlserver://localhost:1433;databaseName=bs";
conn=DriverManager.getConnection(url,"sa","wangshaowei03");
st=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}

// public static void main(String[] args) {
// Connection c=getConn();
// System.out.print("连接成功!");
// closeConn();
// }
//数据查询方法
public ResultSet query(String sql) {
Connection c = getConn();
// System.out.println(conn);
try{
st = c.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=st.executeQuery(sql);
}catch(SQLException e)
{
e.printStackTrace();
}
return rs;
}
//查询一行一列数据
public Object getOnlyOne(String sql){
Object str=null;
ResultSet rs=query(sql);
try {
if(rs.first()){
str=rs.getObject(1);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return str;
}
//数据修改删除方法
public int deleteOrUpdate(String sql) {
int row=0;
Connection c = getConn();
try{
st=c.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
row=st.executeUpdate(sql);
}catch(SQLException e)
{
e.printStackTrace();
}
return row;
}
//判断是否有查询结果
public boolean checkTrue(String sql) {
ResultSet rs=query(sql);
try {
if(rs.next()){
return true;
}else{
return false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
//数据添加方法
public boolean insort(String sql) {
boolean row =false;
Connection c = getConn();
try{
st = c.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
row=st.execute(sql);
}catch(SQLException e)
{
e.printStackTrace();
}
return row;
}
//数据库连接关闭
public static void closeConn(){
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

解决方案 »

  1.   

    首先要保证能连接到sqlserver数据库。执行哪个方法时候报错的? 
    执行的sql语句是什么?
      

  2.   

    你这个连接URL看起来没什么问题,确认下要连的数据库名字叫db吗?sqlserver jdbc是什么版本的?顺便把完整的异常堆栈信息贴出来
      

  3.   

    执行的是查询的sql语句
      

  4.   

    不知道哪里的错
    com.microsoft.sqlserver.jdbc.SQLServerException: '=' 附近有语法错误。
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:196)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1454)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:786)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:685)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4026)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1416)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:185)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:160)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeUpdate(SQLServerStatement.java:642)
    at gs.dbc.testDB.deleteOrUpdate(testDB.java:83)
    at gs.adsvlt.Del.doPost(Del.java:63)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at gs.svlet.EncodingFilter.doFilter(EncodingFilter.java:25)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1137)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:317)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
      

  5.   

    这不应该是sql语句有错误么,你把错误的时候的查询语句发出来给大家看看
      

  6.   

    //数据查询方法
    public ResultSet query(String sql) {
    Connection c = getConn();
    // System.out.println(conn);
    try{
    st = c.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    rs=st.executeQuery(sql);
    }catch(SQLException e)
    {
    e.printStackTrace();
    }
    return rs;
    }
    public int queryCount(String sql){
    int count = 0;
    Connection connection = getConn();
    try {
    st = connection.createStatement();
    rs = st.executeQuery(sql);
        rs.next();
    count = rs.getInt(1); } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    return count;
    }
    //查询一行一列数据
    public Object getOnlyOne(String sql){
    Object str=null;
    ResultSet rs=query(sql);
    try {
    if(rs.first()){
    str=rs.getObject(1);
    }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return str;
    }
      

  7.   

    请认真检查你的sql