Java JDBC相关知识点(一)

使用JDBC连接mysql数据库

JDBC简介:

    JDBC全称为JAVA Database Connectivity, 是Sun公司提供java数据库连接的规范.有了Sun公司提供
的api我们在学习和开发过程中就可以很方便去调用这些接口方法,而不用自己另外去写应用程序去连接数据库
    接下来简要地介绍一下java连接mysql的一般步骤

连接步骤

  1. 加载驱动,在加载驱动之前去官网下载相应的jar包,参考官方文档给出加载驱动的代码Class.forName("com.mysql.jdbc.Driver").newInstance();如果是最新版本可以不用.newInstance()实例化
  2. 建立连接.官方文档给出的代码然而在编写过程中出现了一些乱七八糟的错误,根据提示我把连接代码修改为第二种才通过
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/test?" + 
                          "user=monty&password=greatsqldb") 

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/world?useUnicode=true&"+ 
"serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false", "root", "123");
这是最容易出错的一步,这步完成之后可以说我们已经连上数据库了

3. 执行sql语句

String sql = "select * from countrylanguage";
    ResultSet rs = stmt.executeQuery(sql);

rs返回的是一个容器类型,我们可以遍历容器得到从数据库中得到的数据
4. 释放资源. 事务操作完成之后我们应该去关闭对应的流来释放资源,记住遵循先开后关的原则if(rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}

例子

最后给出我查询mysql自带world数据库的worldlanguage表的一个小demo

public static Connection getSqlConnnection() {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            try {
                return  DriverManager.getConnection("jdbc:mysql://localhost/world?useUnicode=true&"
                        + "serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false", "root", "1221312303");
            } catch (SQLException e) {
                e.printStackTrace();
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        return null;
    }
    public static void main(String[] args) {
        Connection con = null;
        Statement stmt = null;
        ResultSet rs = null;

        try {
            con = Util.getSqlConnnection();
            stmt = con.createStatement();
            String sql = "select * from countrylanguage";
            rs = stmt.executeQuery(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            if(rs != null) {
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(con != null) {
                try {
                    con.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }

    }

猜你喜欢

转载自blog.csdn.net/weixin_42601750/article/details/81431473