初学JDBC遇到的坑
java连接数据库时网上一般教程都是
url="jdbc:mysql://localhost:3306/yourdatabase";
String driver="com.mysql.cj.jdbc.Driver";
其中遇到的第一个问题就是com.mysql.cj.jdbc.Driver
Not find。需要去
https://dev.mysql.com/downloads/connector/j/ 下载,Windows下选择Platform Independent 。之后在idea中导入。如果用的是com.mysql.jdbc.Driver
,有可能会提示不规范,需要改成com.mysql.cj.jdbc.Driver
。
遇到的第二个问题是mysql时区问题。报错内容:
java.sql.SQLException: The server time zone value ‘Öйú±ê׼ʱ¼ä’ is
unrecognized or represents more than one time zone. You must configure
either the server or JDBC driver (via the serverTimezone configuration
property) to use a more specifc time zone value if you want to utilize
time zone support.
需要修改mysql时区,自行百度^ _ ^。或者在url后面加
?serverTimezone=GMT%2B8
即jdbc:mysql://localhost:3306/yourdatabase?serverTimezone=GMT%2B8
连接代码:
public class Hell {
private static String url="jdbc:mysql://localhost:3306/Database?serverTimezone=GMT%2B8";
private static String username="root";
private static String password="root";
private static String driver="com.mysql.cj.jdbc.Driver";
public static void main(String[] args) {
init();
}
public static void init(){
try {
//加载驱动 百度Class.forName(driver);用途
Class.forName(driver);
//连接数据库
Connection coon=DriverManager.getConnection(url,username,password);
//创建sql执行的实体类(由PHP转JAVA,没系统学习,错了请指导,纯属自己猜的)
Statement sql=coon.createStatement();
if(!coon.isClosed()){
System.out.println("连接数据库成功");
//select 查询语句
String query="select * from yz_user where id=1";
//执行sql语句
ResultSet resultSet=sql.executeQuery(query);
while (resultSet.next()){
//循环查询结果,查询结果应该是数组形式,循环数组,用getString方法获取字段内容
String name=resultSet.getString("name");
System.out.println(name);
}
}else {
System.out.println("连接数据库失败");
}
}catch (SQLException e){
//报错信息
e.printStackTrace();
}catch (ClassNotFoundException e){
e.printStackTrace();
}
}
}