idea上利用JDBC连接MySQL数据库(8.1.0版)

1.了解jdbc概念

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种 关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建 更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。

idea上利用JDBC连接MySQL数据库(8.1.0版)_第1张图片

2.java数据库连接

Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何 来访问数据库的[应用程序接口](,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。

idea上利用JDBC连接MySQL数据库(8.1.0版)_第2张图片

3. JDBC API访问与执行流程

JDBC API 允许用户访问任何形式的表格数据,尤其是存储在关系数据库中的数据。

执行流程: 连接数据源,如:数据库。

为数据库传递查询和更新指令。

处理数据库响应并返回的结果。 

idea上利用JDBC连接MySQL数据库(8.1.0版)_第3张图片

pom.xml 中配置

idea上利用JDBC连接MySQL数据库(8.1.0版)_第4张图片

 常用操作步骤

1. 加载驱动

//mysql 旧版本驱动名称,连接mysql 5.1 5.5 5.6
class.forName("com.mysql.jdbc.Driver")
//新版mysql jdbc驱动 兼容旧的mysql数据库 在某此情况可以省略
class.forName("com.mysql.cj.jdbc.Driver")

2.建立数据库连接

//localhost主机 3306端口 null数据库 root账号 密码是默认的,所以没有写
//Connection conn = DriverManager.getConnection("jdbc:mysql:?
user=root");
//url user password
//Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/dbshop?
useUnicode=true&characterEncoding=utf8","root","");
String url = "jdbc:mysql://localhost:3306/dbshop";
//url = "jdbc:mysql://localhost:3305/mysql";
String user = "root";
String password = "";
Connection conn = DriverManager.getConnection(url,user,password);
System.out.println(conn);

System.out.println(conn.getMetaData().getDatabaseProductVersion());

3. 执行相关的语句

4. 关闭连接

public class MyDemo {
    public static void main(String[] args) throws
ClassNotFoundException, SQLException {
//1. 加载jdbc for mysql 驱动类
// com.mysql.jdbc.Driver 旧的mysql 5.6 5.5 5.1 5.0
// com.mysql.cj.jdbc.Driver 新的mysql5.7 8.0
 Class.forName("com.mysql.cj.jdbc.Driver");
//2. 建立数据库连接 localhost:3306/hbcf user root password nieps
//Connection conn =
    DriverManager.getConnection("jdbc:mysql:/hbcf?
    user=root&password=nieps");
//jdbc:mysql://127.0.0.1:3306/hbcf?
    useUnicode=true&characterEncoding=utf8
//Connection conn =
    DriverManager.getConnection("jdbc:mysql://localhost:3308/wxdb?user=root");
    Connection conn =DriverManager.getConnection("jdbc:mysql://localhost:3308/wxdb?                user=root&password=&useUnicode=true&characterEncoding=utf8");
//3. 执行相关的sql语句 select * from cf_user;
    Statement st = conn.createStatement();
    ResultSet rs = st.executeQuery("select * from cf_user");
    while(rs.next()){
    System.out.println(rs.getString("name"));
    }
    rs.close();
    st.close();
 //4. 关闭数据库连接
    conn.close();
  }    
}
public class MyTest {
    public static void main(String[] args) throws
ClassNotFoundException, SQLException {
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection c =
DriverManager.getConnection("jdbc:mysql://localhost:3308/wxdb?
user=root");
        Statement st = c.createStatement();
        ResultSet rss = c.createStatement().executeQuery("selectversion()");
        rss.next();
        System.out.println(rss.getString(1));
        System.out.println("--------------------------");
        ResultSet rs = st.executeQuery("select * from cf_user");
        while (rs.next()) {
            System.out.println(rs.getString("name"));
        }
        rs = st.executeQuery("show tables");
        while(rs.next()){
            System.out.println(rs.getString(1));
        }
    }
}
public class MyDemo {
    @Test @DisplayName("连接ubuntu mysql5.6.51")
        public void m5() {
//01 docker pull mysql:5.6.51
//02 docker run -itd -p 49153:3306 --name m5 -e MYSQL_ROOT_PASSWORD=root-e TZ=Asia/Shanghai mysql:5.6.51
//03 docker run -it --rm mysql:5.6.51 mysql -h192.168.21.68 -uroot -p -
P49153
        String driver = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://192.168.21.68:49153?serverTimezone=PRC";
        String user = "root";
        String password = "root";
        try{
        Class.forName(driver);
        Connection conn = DriverManager.getConnection(url,user,password);
//String version = conn.getMetaData().getDatabaseProductVersion();
//System.out.println(version);
        Statement st = conn.createStatement();
        ResultSet rs = st.executeQuery("select now()");
        if(rs.next()){
        System.out.println(rs.getDate(1)); //java LocalDate mysql date
        System.out.println(rs.getTime(1)); //java LocalTime mysql time
        System.out.println(rs.getTimestamp(1)); //java LocalDateTime
        mysql datetime
            }
        }catch(Exception e){
        e.printStackTrace();
        }
    }
}

你可能感兴趣的:(MySqL,数据库,intellij-idea,mysql)