MySql驅動jdbc連接時區問題


當jdbc驅動版本為8.0+時不設置時區會報錯

  • 修改url連接
    String url = "jdbc:mysql://localhost:3306/javaweb?serverTimezone=GMT%2B8";

或者
String url = "jdbc:mysql://localhost:3306/javaweb?serverTimezone=Asia/Shanghai";

  • 防止亂碼
String url = "jdbc:mysql://localhost:3306/javaweb?serverTimezone=GMT%2B8&characterEncoding=utf8";
  • 遠程數據庫連接
String url = "jdbc:mysql://xxx.xxx.xx.xx:3306/javaweb?serverTimezone=GMT%2B8&characterEncoding=utf8&useSSL=false&useUnicode=true";

獲取連接

Class.forName("com.mysql.cj.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/javaweb?serverTimezone=GMT%2B8";
        String username = "root";
        String password = "root";
        Connection con = DriverManager.getConnection(url,username,password);
        System.out.println(con);

執行增刪改語句

        String sql = "insert into t_user values (?,?,?,?)";
        PreparedStatement pre = conn.prepareStatement(sql);
        pre.setInt(1,user.getUid());
        pre.setString(2,user.getName());
        pre.setInt(3,user.getAge());
        pre.setString(4,user.getPhone());
        //ResultSet resultSet = pre.executeQuery();
        int i = pre.executeUpdate();
        System.out.println(i);

執行查詢語句

        String select = "select * from t_user;";
        PreparedStatement pre = conn.prepareStatement(select);
        ResultSet res = pre.executeQuery();
        List<User> list = new ArrayList<>();
        while (res.next()) {
            User user = new User();
            user.setUid(res.getInt("uid"));
            user.setName(res.getString("name"));
            user.setAge(res.getInt("age"));
            user.setPhone(res.getString("phone"));
            list.add(user);
        }

驅動下載地址

https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.26/

maven

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.26</version>
</dependency>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM