zoukankan      html  css  js  c++  java
  • IDEA连接本地Mysql数据库避坑指南

    关于本地安装mysql请参考我的上一篇博客:

    https://www.cnblogs.com/cckong/p/13977440.html

    下面我来一步一步教大家你的java程序如何通过JDBC链接上数据库!

    1.确保你的mysql已经添加进环境变量

    参考这篇 https://jingyan.baidu.com/article/3052f5a1e23d6997f31f860c.html

    此步骤的功能是让任何人都可以访问mysql

    不需要以管理员身份才能访问

     2.下载Mysql的jar包并放进IDEA

    参考  https://www.runoob.com/java/java-mysql-connect.html

    这篇博客前半段有下载地址 (注意下载与你mysql对应版本jar包)

    下载成功后我们导入idea

    如下打开

    点击SDKs

     

     点击+号添加对应jar包

    添加成功后 最后应在

     

     3.接着我们向数据库中写点东西 来证明链接是否成功

    (具体mysql语句 参考https://www.runoob.com/mysql/mysql-create-database.html)

     4.我们来验证一下

    其中的   conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&useSSL=FALSE" ,"root","");

    需要注意的是要改成你的   conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:端口号/数据库名称?test?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&useSSL=FALSE" ,"你的登录名(一般是root)","你的密码")

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class test {
        public static void main(String[] args) {
            ResultSet rs = null;
            Statement stmt = null;
            Connection conn = null;
    
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");
                conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&useSSL=FALSE" ,"root","");
                stmt = conn.createStatement();
                rs = stmt.executeQuery("select * from tablename1");
    
                while (rs.next()) {
    // 根据字段名获取相应的值
    //                String name = rs.getString("name");
    //                String sex = rs.getString("sex");
                    int age = rs.getInt("age");
    
    // 输出查到的记录的各个字段的值
                    System.out.println( " " + age);
                }
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (rs != null) {
                        rs.close();
                        rs = null;
                    }
                    if (stmt != null) {
                        stmt.close();
                        stmt = null;
                    }
                    if (conn != null) {
                        conn.close();
                        conn = null;
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    5.输出 成功!

    踩坑过程:

    (1)timezone问题

    在url中加入一个语句           "jdbc:mysql://localhost:3306/test?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&useSSL=FALSE"。

    (2)Access denied for user ''@'localhost' (using password: NO)问题

    有可能是我当初没有设置环境变量问题

    也有可能 我那个代码复制过来的getconnection的参数问题





  • 相关阅读:
    Ext Js MVC系列二 利用Application和Viewport进行应用程序初始化和页面布局
    LINQ to Sql系列一 增,删,改
    Ext Js MVC系列一 环境搭建和MVC框架整体认识
    LINQ to Sql系列四 性能优化总结
    SQL基础回顾系列一 单表查询(select语句)
    JSON详解
    公用类库(4) 缓存操作类CacheUtil
    架构设计考虑的问题(出自代码大全II)
    .net自动更新组件Ant
    .net socket在win2008下的吞吐性能报告
  • 原文地址:https://www.cnblogs.com/cckong/p/13994278.html
Copyright © 2011-2022 走看看