当前位置: 首页 > 面试题库 >

Class.forName(“ com.mysql.jdbc.Driver”)。newInstance()

利博远
2023-03-14
问题内容

我在Netbeans
7.2上遇到此错误,它说ClassNotFoundexception和InstantationException。我真的在这个问题上陷入困境。请帮助我。

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    try {
        String driver = "com.mysql.jdbc.Driver";
        con = null;
        String username = "";
        String password = "";

        Class.forName("com.mysql.jdbc.Driver").newInstance();

        con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbName", "root", "password");
        Statement st = con.createStatement();
        ResultSet mar = st.executeQuery("SELECT * FROM table");


        Gson gson = new GsonBuilder().create();
        response.setContentType("application/json");  
        response.setCharacterEncoding("utf-8");

    } catch (SQLException e) {
                String message = e.getMessage();
    }

问题答案:

那么这个简单的方法呢?

java.sql.Driver d=new com.mysql.jdbc.Driver();

我也想知道为什么您要用这种方式连接数据库?最好让服务器对其进行管理。

首先context.xml像这样配置(如果您使用的是tomcat):

<context>
<Resource name="_ds" auth="Container" type="javax.sql.DataSource"
               maxActive="128" maxIdle="32" username="_admin" password="qwerty" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://127.0.0.1:3306/dbname"/>
</context>

然后,简单地从servlet / etc中的该资源获取连接,如下所示:

public void init() {
    try {
        _ds = (DataSource) InitialContext.lookup("java:/comp/env/_ds");
    } catch (Exception ex) {
    }
}

private javax.sql.DataSource _ds;

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException
{
    try {
        /*String driver = "com.mysql.jdbc.Driver";
        con = null;
        String username = "";
        String password = "";

        Class.forName("com.mysql.jdbc.Driver").newInstance();

        con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbName", "root", "password");*/
        Connection con=_ds.getConnection();
        Statement st = con.createStatement();
        ResultSet mar = st.executeQuery("SELECT * FROM table");


        Gson gson = new GsonBuilder().create();
        response.setContentType("application/json");  
        response.setCharacterEncoding("utf-8"); 
        con.close();
    } catch (SQLException e) {
        String message = e.getMessage();
    }

顺便说一句,不要忘记在<CATALINA_BASE>/lib文件夹中编写MySQL JDBC驱动程序jar 文件



 类似资料:
  • 问题内容: 连接到MySQL数据库时,请执行以下步骤 实际上,我想知道语句的作用。 虽然此类不在mysql.jar中。它在哪里? 问题答案: 本类位于java.lang包,因此在分布用java,并自动导入到每个班级。 该方法所做的只是返回由类加载器加载的参数对象。然后,该方法返回该类的新实例。 因此,发生什么情况是您称之为 返回com.mysql.jdbc.Driver.class。然后,您调用该

  • 本文向大家介绍浅析使用JDBC操作MySQL需要添加Class.forName("com.mysql.jdbc.Driver"),包括了浅析使用JDBC操作MySQL需要添加Class.forName("com.mysql.jdbc.Driver")的使用技巧和注意事项,需要的朋友参考一下 引言 如果熟悉使用JDBC来连接数据库的同学一定很清楚连接数据库的代码中一定会有依据Class.forNam

  • 问题内容: 这个问题已经在这里有了答案 : 如何在Eclipse Web项目中安装JDBC驱动程序而不面对java.lang.ClassNotFoundexception (13个答案) 3年前关闭。 我正在开发一个Web应用程序,使用:Eclipse IDE(Marse),Java 8,Apache tomcat 8,MySQL。我的用户注册代码如下: 我的代码也是正确的,并且我在Eclipse

  • 问题内容: 这个问题可能在这里问过很多次了。经过一些谷歌搜索上述错误并进行了一些更新后,我不明白为什么我仍然收到该错误。我已经将驱动程序mysql-connector-java-5.1.5-bin放在类路径中: 我用来连接到mysql数据库的代码是: 并且上述异常的完整stacktrace为: 现在,我在这里怎么了? 问题答案: 最常见的原因是在加载类的位置上存在一些冲突。例如,如果您有2个位置,

  • 问题内容: 和之间有什么区别? 我不了解其中的重大区别(我已经阅读了一些有关它们的信息!)。请你帮助我好吗? 问题答案: 也许一个示例演示如何使用两种方法将有助于你更好地理解事物。因此,请考虑以下类: 如其javadoc中所述,调用将返回与具有给定字符串名称的类或接口关联的对象,即它返回受type变量影响的对象。 然后,调用创建该 对象表示的类的新实例。就像通过带有空参数列表的表达式实例化该类。换

  • ./tested/resta.java 。/tested/suma.class 。/tested/resta.class 。/test/testsuma.class 。/test/testsuma.java 。/test/testsuma.class 。/test/testsuma.class 。/spumevaluador.class 。/spumevaluador.java 当我运行Spume