zoukankan      html  css  js  c++  java
  • 解决Tomcatt下连接数据库的classNoFount问题

    在数据库连接单独使用的时候。即作为一个独立类建立在mian方法中,可以正确的使用。例:连接MySql数据库

    import java.sql.*;
    
    public class SQLtest {
        // JDBC 驱动名及数据库 URL
        static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
        static final String DB_URL = "jdbc:mysql://localhost:3306/mydatabase?useUnicode=true&" +
                "characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8";
    
        // 数据库的用户名与密码,需要根据自己的设置
        static final String USER = "root";
        static final String PASS = "123456";
    
        public boolean mySql(String sname, String spassword) {
    //    public static void main(String[] args) {
    //        String sname = "user1";
    //        String spassword="123456";
            Boolean success = false;
            Connection conn = null;
            Statement stmt = null;
            try {
                // 注册 JDBC 驱动
                Class.forName(JDBC_DRIVER);
    
                // 打开链接
                System.out.println("连接数据库...");
                conn = DriverManager.getConnection(DB_URL, USER, PASS);
    
                // 执行查询
                System.out.println(" 实例化Statement对象...");
                stmt = conn.createStatement();
                String sql;
                sql = "SELECT name,password FROM table_name ";
                ResultSet rs = stmt.executeQuery(sql);
    
                // 展开结果集数据库
                while (rs.next()) {
                    // 通过字段检索
                    String name = rs.getString("name");
                    String password = rs.getString("password");
    
    //                // 输出数据
    //                System.out.println("用户名: " + name);
    //                System.out.println("密码: " + password);
                    if (name.equals(sname) && password.equals(spassword)) {
                        success = true;
                    }
                }
                // 完成后关闭
                rs.close();
                stmt.close();
                conn.close();
    
            } catch (SQLException se) {
                // 处理 JDBC 错误
                se.printStackTrace();
            } catch (Exception e) {
                // 处理 Class.forName 错误
                e.printStackTrace();
            } finally {
                // 关闭资源
                try {
                    if (stmt != null) stmt.close();
                } catch (SQLException se2) {
                }// 什么都不做
                try {
                    if (conn != null) conn.close();
                } catch (SQLException se) {
                    se.printStackTrace();
                }
            }
            System.out.println("Goodbye!");
            System.out.println(success);
            return success;
    
        }
    }

    然后在Tomcat中时则出现java.lang.ClassNotFoundException: com.mysql.jdbc.Driver,数据库驱动不能找到的问题。.jar包已经成功导入,

    在java项目中,只需要引入mysql-connector-java-5.1.7-bin.jar就可以运行java项目。

    但是在web项目中,当Class.forName("om.mysql.jdbc.Driver")时;是不会去查找字符串,不会去查找驱动的。所以只需要把mysql-connector-java-5.1.7-bin.jar拷贝到tomcat下lib目录就可以了。



  • 相关阅读:
    cesium学习——cesium中的坐标
    webService框架CXF的简单使用
    使用cesium中的scene.open中遇到的几个问题
    通过Spring读取properties配置文件
    常用的Ant风格书写
    oracle小知识点
    虚拟机centos7系统下安装hadoop ha和yarn ha(详细)
    java 注解
    Guava Immutable 不可变集合
    Guava BiMap
  • 原文地址:https://www.cnblogs.com/xjtsh/p/10606548.html
Copyright © 2011-2022 走看看