参考:菜鸟教程和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
和创建表
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框架。