java连接mysql时加Class.forName("Com.mysql.jdbc.Driver").newInstance();和不加有什么区别?我的代码如下

import java.sql.*;
public class SampleIntro{
public static void main(String[] args){
try{
Connection conn;
Statement stmt;
ResultSet res;
Class.forName("Com.mysql.jdbc.Driver").newInstance();
conn=DriverManager.getConnection

("jdbc:mysql://localhost:3306/test","root","2");
stmt=conn.createStatement();
res=stmt.executeQuery("select * from pet");
while(res.next()){
String name=res.getString("name");
System.out.println(name);
}
res.close();
}
catch(Exception ex){
System.out.println("Error:"+ex.toString());
}
}
}
运行错误是Error:java.lang.ClassNotFoundException: Com.mysql.jdbc.Driver.删除Class.forName("Com.mysql.jdbc.Driver").newInstance();后运行就可以了,请问Class.forName("Com.mysql.jdbc.Driver").newInstance();是什么意思?

注册JDBC的驱动
如果你有看过JDBC的书籍,也许会提到过驱动注册这一过程,但在应用中,你基本上不会用到,而仅仅是class.forname这样一句话
如果你下载一个mysql-conn***.jar,打开com.mysql.jdbc.Driver这个类,你就会看到类似的话
class Driver{
static{
DriverManager.registerDriver(new Driver());//应该没记错
}
}

很显然,它帮你注册了驱动,没杳资料,也许是种JDBC驱动的约定

至于楼上的说的,会自动注册,我是从来没见过
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-15
com 要小些 JAVA1.5以后 JDBC自动加载驱动了 所以可以不写了
第2个回答  2012-06-15
newInstance是掉默认的构造函数 说白了就是实例化了对象

...Class.forName("com.mysql.jdbc.Driver");一直报错 那位高手帮忙...
Class.forName("com.mysql.jdbc.Driver");以前我也没深究,只是看网上的例子都这么写,实际上也跑通了,于是便懒得去管内部原理。不过大概还是清楚的,知道这句话是向DriverManage注册了一个MySQL的JDBC Driver。但为什么要用Class.forName这样看上去不是很优雅的方式呢?网上还流传了一个这样的版本Class...

Class.forName("com.mysql.jdbc.Driver").newInstance();这一...
这是通过反射的方法创建驱动对象吧,如果你程序运行时没有没有用到这个对象的话应该没事,一旦你执行一些会用到数据库的功能的时候就会报错。大概是这样子。

Class.forName("com.mysql.jdbc.Driver");这句话该怎么理解??请高手...
单独解释的话 这个是加载jdbc的驱动 实际应用的话可以动态产生对象实例 多用于工厂方法 A a=(A)Class.forName("A").newInstance();这种方法是除了new 以外唯一一种产生对象实例的方法~

jdbc连接mysql时,驱动的jar包在classpath中引入为何不管用。
classpath不用配,直接在eclipse的项目上点击右键,选Build Path。选Configure Build Path里的libraries选项卡.add external jars.把mysql的驱动包加入就可以了

在eclipse工程中加载com.mysql.jdbc.Driver出错
在eclipse工程中加载com.mysql.jdbc.Driver出错是设置错误造成的,解决方法为:1、首先找到报错文件右键点开。2、右键找到Build Path,选择里面最底下的那个选项进入。3、接着我们可以发现有两个jar包报错了,那么这个时候多半是你的版本和jar包和他的代码不匹配,或者因为压缩问题造成的,那么你需要的是...

myeclipse java web项目 连接mysql数据库问题 提示46行有错。。
提示说的很清楚了呀,你没有com.mysql.jdbc.Driver的方法,也就是说没有引入mysql的驱动包,到http:\/\/www.mysql.com\/downloads\/mirror.php?id=404190#mirrors 下载一个,放在lib目录就可以了。

Java链接MySQL数据库老是报错,求助高手~
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 找不到驱动,你驱动包没有引入吧。你是用的Myeclipse吗?是的话,可以点击工程的右键,里面有导入library的一个选项,就可以导入驱动包了。

JAVA反射中通过Class.forname()如何带参数的方法怎么赋值和调用呀?
forName()是java.lang.Class类的一个方法, 如下 static Class forName(String className) :返回与带有给定字符串名的类或接口相关联的 Class 对象 。这句话说的太绕口了,举个例子吧:Class t = Class.forName("java.lang.Thread")执行完这句话,Thread类将被虚拟机加载了 类加载以后就可以创建...

java是怎么连接mysql数据库的
String url="jdbc:mysql:\/\/localhost(可以是本机IP地址):3306(端口号)\/mysqltest(数据库名称)?"+"user=用户账号&password=用户密码&useUnicode=字符编码";(2)加载驱动:Class.forName("com.mysql.jdbc.Driver");(3)连接,获取Connection对象 Connection conn=DriverManager.getConnection(url)(4)...

Java Web与数据库连接
<%@ page import="java.sql.*"%> <%Class.forName("org.gjt.mm.mysql.Driver").newInstance(); String url ="jdbc:mysql:\/\/localhost\/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1" \/\/testDB为你的数据库名 Connection conn= DriverManager.getConnection(url); Statement...

相似回答