driver=com.mysql.cj.jdbc.Driver和private String className = "com.mysql.jdbc.Driver"; 的区别是什么?
时间: 2023-11-30 11:36:24 浏览: 78
这两个驱动类名的区别在于版本和包名。
"com.mysql.cj.jdbc.Driver" 是用于MySQL Connector/J 8.0及以上版本的驱动类名。这个驱动类是MySQL官方推荐使用的,并且支持新的连接属性和功能。
而 "com.mysql.jdbc.Driver" 是用于MySQL Connector/J 5.1及以下版本的驱动类名。这个驱动类是旧版本的,虽然仍然可以使用,但官方已经不再推荐使用它。
如果你使用的是MySQL Connector/J 8.0及以上版本,建议使用 "com.mysql.cj.jdbc.Driver" 作为驱动类名。如果你使用的是旧版本的Connector/J,那么应该使用 "com.mysql.jdbc.Driver" 作为驱动类名。
相关问题
private String className = "com.mysql.cj.jdbc.Driver";什么意思
这是一个Java程序语言中的变量声明语句,它声明了一个名为"className"的字符串类型变量,并将其值设置为"com.mysql.cj.jdbc.Driver"。这个变量通常用于指定JDBC驱动程序的类名,以便在Java程序中连接到MySQL数据库时使用。在这种情况下,它指定了MySQL Connector/J驱动程序的类名。
有如下的配置文件:confifig.properties @Info(name="卡卡西" ,tags={"复制忍者" , "六代火影"}) @Organization(name="木叶村" ,size=556) public class Ex1{ } version=1.0 appName=注解的应用案例 id=123456789 title=java从入门到入土 size=120 druid.driverClassName=com.mysql.cj.jdbc.Driver druid.url=jdbc:mysql://localhost:3306/mybatis druid.username=root druid.password=root123 有如下的类:public class BaseDAO{ @Value(name="druid.driverClassName") private static className; @Value(name="druid.url") private static url; @Value(name="druid.username") private static username; @Value(name="druid.password") private static password; static{ // 在静态块中参考课堂的案例,将配置文件中对应 的属性值绑定到上面的四个静态变量中。 } public static void showInfo(){ // 输出上面4个静态成员变量的值 } 根据题目意思定义一个Value注解。 完成BaseDAO中的静态块中的代码和showInfo方法中的代 码编写。
定义Value注解如下:
```java
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Value {
String name() default "";
}
```
完整的BaseDAO代码如下:
```java
public class BaseDAO {
@Value(name="druid.driverClassName")
private static String className;
@Value(name="druid.url")
private static String url;
@Value(name="druid.username")
private static String username;
@Value(name="druid.password")
private static String password;
static{
try(InputStream input = BaseDAO.class.getClassLoader().getResourceAsStream("config.properties")){
Properties prop = new Properties();
prop.load(input);
className = prop.getProperty("druid.driverClassName");
url = prop.getProperty("druid.url");
username = prop.getProperty("druid.username");
password = prop.getProperty("druid.password");
} catch(IOException e){
e.printStackTrace();
}
}
public static void showInfo(){
System.out.println("driverClassName: " + className);
System.out.println("url: " + url);
System.out.println("username: " + username);
System.out.println("password: " + password);
}
}
```
静态块中的代码使用了Properties类来读取配置文件中的信息,然后将其绑定到静态变量中。showInfo方法可以输出这些静态变量的值。
阅读全文