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

1.了解jdbc概念

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

2.java数据库连接

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

3. JDBC API访问与执行流程

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

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

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

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

pom.xml 中配置

常用操作步骤

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. 关闭连接

java 复制代码
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();
  }    
}
java 复制代码
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));
        }
    }
}
java 复制代码
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();
        }
    }
}
相关推荐
团儿.44 分钟前
解锁MySQL高可用新境界:深入探索MHA架构的无限魅力与实战部署
数据库·mysql·架构·mysql之mha架构
程序猿小D1 小时前
第二百六十七节 JPA教程 - JPA查询AND条件示例
java·开发语言·前端·数据库·windows·python·jpa
权^2 小时前
MySQL--聚合查询、联合查询、子查询、合并查询(上万字超详解!!!)
大数据·数据库·学习·mysql
Code成立2 小时前
1、深入理解Redis线程模型
数据库·redis·bootstrap
缘友一世4 小时前
macos安装mongodb
数据库·mongodb·macos
万事大吉CC5 小时前
mysql单表查询·3
数据库·mysql
bin91536 小时前
【EXCEL数据处理】000010 案列 EXCEL文本型和常规型转换。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来,方便查看。
大数据·数据库·信息可视化·数据挖掘·数据分析·excel·数据可视化
Miqiuha6 小时前
lock_guard和unique_lock学习总结
java·数据库·学习
一 乐7 小时前
学籍管理平台|在线学籍管理平台系统|基于Springboot+VUE的在线学籍管理平台系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习
Java探秘者11 小时前
Maven下载、安装与环境配置详解:从零开始搭建高效Java开发环境
java·开发语言·数据库·spring boot·spring cloud·maven·idea