JDBC连接数据库

2019-11-18 14:42:55 浏览数 (1)

参考:菜鸟教程和w3c

  • https://www.runoob.com/java/java-tutorial.html
  • https://www.runoob.com/w3cnote/jdbc-use-guide.html

首发于CSDN:

  • https://blog.csdn.net/weixin_44510615/article/details/102575750

Java 连接 MySQL

Java 连接 MySQL 需要驱动包,最新版下载地址为:http://dev.mysql.com/downloads/connector/j/,

解压后得到jar库文件

环境介绍

  • IDEA
  • jdk1.8

在项目导入mysql驱动程序jar

在这里插入图片描述

这样导入import java.sql可以不报错

编写并执行 sql 语句

在mysql使用sql语句新建数据库test和创建表

代码语言:javascript复制
CREATE TABLE `websites` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(20) NOT NULL DEFAULT '' COMMENT '站点名称',
  `url` varchar(255) NOT NULL DEFAULT '',
  `alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名',
  `country` char(10) NOT NULL DEFAULT '' COMMENT '国家',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

插入数据

代码语言:javascript复制
INSERT INTO `websites` VALUES ('1', 'Google', 'https://www.google.cm/', '1', 'USA'), ('2', '淘宝', 'https://www.taobao.com/', '13', 'CN'), ('3', '菜鸟教程', 'http://www.runoob.com', '5892', ''), ('4', '微博', 'http://weibo.com/', '20', 'CN'), ('5', 'Facebook', 'https://www.facebook.com/', '3', 'USA');
做jdbc代码,需要用到如下几个固定步骤
  • 注册mysql数据库服务器的驱动,DriverManager
  • 获取mysql数据库服务器的连接,Connection
  • 获取封装sql语句的对象,Statement
  • 执行sql语句,并返回结果集合,ResultSet
  • 迭代这个结果集合,while(){}
  • 按轻到重的原则关闭连接对象,ResultSet-Statement-Connection,在必要情况下,Connection可重用
代码如下
代码语言:javascript复制
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MySQLDemo {
    public static void main(String[] args) {
        //声明Connection对象
        Connection con;
        //驱动程序名  
        String driver = "com.mysql.jdbc.Driver";
        //URL指向要访问的数据库名test  192.168.16.128虚拟机ip  数据库test
        // characterEncoding=utf8&useSSL=true 编码和使用SSL
        String url = "jdbc:mysql://192.168.16.128:3306/test?characterEncoding=utf8&useSSL=true";
        //MySQL配置时的用户名
        String user = "root";
        //MySQL配置时的密码
        String password = "123456";
        //遍历查询结果集
        try {
            //加载驱动程序
            Class.forName(driver);
            //1.getConnection()方法,连接MySQL数据库!!
            con = DriverManager.getConnection(url,user,password);
            if(!con.isClosed())
                System.out.println("Succeeded connecting to the Database!");
            //2.创建statement类对象,用来执行SQL语句!!
            Statement statement = con.createStatement();
            //要执行的SQL语句
            String sql = "select * from websites";
            //3.ResultSet类,用来存放获取的结果集!!
            ResultSet rs = statement.executeQuery(sql);

            System.out.println("执行结果如下所示:");
            System.out.println("-----------------");

            // 存在下一个
            while(rs.next()){
                //获取这列数据
                int id = rs.getInt("id");
                String name = rs.getString("name");
                //获取这列数据
                String myurl = rs.getString("url");
                String alexa = rs.getString("alexa");
                String country = rs.getString("country");
                //输出结果
                System.out.println(id    "t"   name   "t"   myurl   "t"   alexa   "t"   country);
            }
            rs.close();
            con.close();
        } catch(ClassNotFoundException e) {
            //数据库驱动类异常处理
            System.out.println("Sorry,can`t find the Driver!");
            e.printStackTrace();
        } catch(SQLException e) {
            //数据库连接失败异常处理
            e.printStackTrace();
        }catch (Exception e) {
            e.printStackTrace();
        }finally{
            System.out.println("数据库数据成功获取!!");
        }
    }
}
运行如下

在这里插入图片描述

这是最基础的Java使用JDBC连接mysql数据库

扩展:JDBC

JDBC ——Java DataBase Connectivity的简写,主要是将Java程序和数据库进行连接,并通过Java程序操作数据库。

JDBC是一种底层的API,在访问数据库的时候需要在业务逻辑中直接嵌入SQL语句。JDBC不能直接访问数据库,需要借助数据库厂商提供的JDBC驱动程序。

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

执行流程:

  • 连接数据源,如:数据库。
  • 为数据库传递查询和更新指令。
  • 处理数据库响应并返回的结果。

JDBC 架构分为双层架构和三层架构。

双层架构

作用:此架构中,Java Applet 或应用直接访问数据源。

条件:要求 Driver 能与访问的数据库交互。

机制:用户命令传给数据库或其他数据源,随之结果被返回。

部署:数据源可以在另一台机器上,用户通过网络连接,称为 C/S配置(可以是内联网或互联网)。

三层架构

侧架构特殊之处在于,引入中间层服务。

流程:命令和结构都会经过该层。

吸引:可以增加企业数据的访问控制,以及多种类型的更新;另外,也可简化应用的部署,并在多数情况下有性能优势。

现在的开发已经很少使用到JDBC了,Mybatis和Spring框架已经把JDBC完美的封装,并映射到实体类,我们只需要一个简单的调用就可以完成很多工作,特别是Mybatis,灵活多变。但是,作为一个专业的开发者,JDBC是我们必须深刻理解的,这样才能更好的使用ORM框架。

0 人点赞