我有一个自己的mySqlConnection 类  代码如下
public class mySqlConnection {
private String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=police";    private String userName = "sa";    private String password = "123456"; static {
try {
// 加载驱动
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); } catch (ClassNotFoundException e) {
e.printStackTrace();
} } public Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, userName, password);
}
}
有个Myreader类  代码如下
public class myReader { private  mySqlConnection  dbconn;
private Connection  conn;
private Statement  stmt;
private  ResultSet rs;
private  String  csql;
    public myReader( String  csql  ){
  this.csql = csql;  
}
public  ResultSet  loginInfoRead() throws SQLException
{
  dbconn= new mySqlConnection();
      conn = dbconn.getConnection();
      stmt=conn.createStatement();
      rs=stmt.executeQuery( csql);
      return  rs;
}
public  void connclose()throws  SQLException
{
rs.close();
stmt.close();
conn.close();
System.out.println("all  closed ");

}
/* public static  void  main(String  args[]) throws SQLException{
String  sql = "select  * from  Login ";
myReader  mreader= new myReader(sql);
ResultSet rs=  mreader.loginInfoRead();
while(rs.next()){
System.out.println(rs.getString("PID"));

}
mreader.connclose();


}*/
}
问题来了
我在jsp页面中  <body>
  
  <%
    request.setCharacterEncoding("gb2312");
    String pid = request.getParameter("PID");
String pstytle = request.getParameter("PStytle");
String msg = "";
    
    String id="332211";
    String pwd= "123456";
String  sql="select PID from  Login where PID =? and PPwd=? ";
String  mysql = "select  * from  Login";
myReader  myconn=  new myReader(mysql);
ResultSet  rs = myconn.loginInfoRead();
while(rs.next())
{%>
<%=rs.getString("PID") %>
    <% 
     }
     myconn.connclose();
%>
    
  </body>  这个是可以读取数据库中的信息 并且显示的 但是我在用java application调试时 报错 说是驱动有问题
Exception in thread "main" java.sql.SQLException: No suitable driver
大家帮忙解决下问题

解决方案 »

  1.   


    public class test {
    public static  void  main(String  args[]) throws SQLException{
    String  sql = "select  * from  Login ";
    myReader  mreader= new myReader(sql);
    ResultSet rs=  mreader.loginInfoRead();
    while(rs.next()){
    System.out.println(rs.getString("PID"));

    }
    mreader.connclose();

    }
    }
    忘记给java application下的代码了
      

  2.   

    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 这不是加载jdbc驱动吗 楼主是不是搞错了. 
      

  3.   

    你要将ms sqlserver的驱动程序(三个jar文件)放到你的classpath中,如果是web放到web-inf/lib目录
      

  4.   

    楼主写的类名是: mySqlConnection 
    不知道是连接 sqlserver 还是 mysql?
      

  5.   

    1.确保驱动包加载了是否加载。
    2.查看connection是否能获取。
    3.查看结果集中是否有数据。
    4.是否是关闭方法抛出的异常。
    你的问题就是老飞方法抛出异常,而不是捕获,这样错误信息提示不明显,不好判断。
      

  6.   

      连接的是sql  sever数据库 
      

  7.   

    三个驱动的jar文件都放到了tomcat的lib目录下了   在jsp页面中执行时是有结果出来的  但是在java  applicaton中执行的话是报错 说是驱动加载的问题
      

  8.   

    static { 
        try { 
            // 加载驱动 
             Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
        } catch (ClassNotFoundException e) { 
            e.printStackTrace(); 
        } 

    static 是静态方法,它只执行一次,所以你要把加载驱动的方法放到构造函数中,这样每一次实例
    化这个类,就加载了驱动.
      

  9.   

     加上这个试试:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();; 
      

  10.   

    呵呵,我知识楼主的意思,楼主搞错了两个概念。首先,你在WEB环境下运行JSP是可以的,表明你的各项配置和jar文件都加载了。第二,你另外需要在一个测试类的MAIN中运行这种操作数据库的操作,在运行这个main前,要加以配置,手工加载你要的类。方法是:(eclipse环境)
    在该test类中,点击右键->运行方式-》选择运行-》选择类路径标签-》选择用户条目-》添加JAR.呵呵,这样,你再运行这个main,就可以了。
      

  11.   

    spring配置与IBATIS或HIBERNATER结合使用
    <?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" 
      "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> 
    <import resource="classpath:spring_conf/autodao/spring_dao_common.xml" />
    <import resource="classpath:spring_conf/autodao/spring_dao_forum.xml" />
       
     
    <import resource="classpath:spring_conf/manual/spring_dao_common.xml" />
    <import resource="classpath:spring_conf/manual/spring_dao_forum.xml" />  

    <import resource="classpath:spring_conf/spring_quartz.xml" />  <!-- ========================= RESOURCE DEFINITIONS ========================= -->
    <bean id="propertyConfigurer" class="com.java91.param.common.SpringPropertyConfigurer">
    <property name="locations">     
    <list>
    <value>classpath:db_para.properties</value>
    </list>
    </property>
    </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${jdbc.driverClassName}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
    <property name="maxIdle" value="50" />
    <property name="minIdle" value="20" />
    <property name="logAbandoned" value="true" />
    <property name="removeAbandoned" value="true" />
      <property name="maxWait" value="1000" />
      <property name="maxActive" value="500" />
    </bean> <!-- Transaction manager for a single JDBC DataSource -->
    <!-- (see dataAccessContext-jta.xml for an alternative) -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource">
    <ref local="dataSource"/>
    </property>
    </bean> <bean id="sqlMap" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
    <property name="configLocation">
    <value>classpath:daoConfig/sql-map-config.xml</value>
    </property>
    <property name="dataSource">
    <ref local="dataSource"/>
    </property>
    </bean> <bean id="transactionInterceptor"
    class="org.springframework.transaction.interceptor.TransactionInterceptor">
    <property name="transactionManager" ref="transactionManager"></property>
    <property name="transactionAttributes">
    <props>
    <prop key="*">PROPAGATION_REQUIRED</prop>
    <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
    </props>
    </property>
    </bean>
    <!-- 
    <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
    <property name="beanNames">
    <value>*Service, *Manage, *Manager</value>
    </property>
    <property name="interceptorNames">
    <list>
    <value>transactionInterceptor</value>
    </list>
    </property>
    </bean>--></beans>