加载MYSQL JDBC驱动问题

用java加载MYSQL JDBC驱动的时候,下面三种都能正常加载!请问他们有什么区别吗?
Class.forName("org.gjt.mm.mysql.Driver");
Class.forName("com.mysql.jdbc.Driver");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
区别是你导了三个不同的jar包,创建数据库连梁腔接驱动,javaJDK并没有提供完整的实现,但是支持组建的实现,所有就尘渣李有了好多不同机构对他做了具体的实现,需要导入一个driver包,后缀为.jar。你导不同的jar包,jar包定义的路径都不同,他们之间没有实质的差别。一般来讲我们都是用的第二个派迟,据说是因为稳定。
第一个org.gjt.mm.mysql.Driver这个不是驱动类,这个判厅宏是一般是自伏友动生成的是一个范例
第二个是通过mysql驱动jar包加载JDBC驱动
第三个是odbc方式建立连接,没用掘册到mysql驱动
三个都是加载数据库驱动,对于JDK来说,内部只是提供了一个数据库连接的规范,如Collection,Statement等都是一些接口颂姿镇,而如果你用MySQL,那么MySQL就野粗会提供实现了这些接口的类,我们称之为数据库驱动,这三个通过Class.forName方式,册州会执行com.mysql.jdbc.Driver中的静态区域代码,从而注册到DriverManager中去,这才可以在后面使用DriverManager.getConnection()获取数据库连接。
首裤空野先Class.forName()是Java的反射方法,根据类名称获取类。你上面3行代码分别获取三个包的JdbcDriver类。用第二个,因为亏运那个胡喊是官方的包。
用第二个,mysql官方提供的驱动包
很明显 一个是apache的,一个是mysql官方的,一个是sun公司的
加载MYSQL JDBC驱动问题
← 上一篇: 下一篇: →