JDBC
简介
在日常工作中,一般都会使用代码来操作数据库,MySQL会给各种主流的编程语言提供API(现成的函数/类)从而达到用代码来操作数据库的目的
由于MySQL本身就是由 C/C++ 语言实现的,所以使用C/C++语言来操作数据库是最直接的,而使用其它语言来操作数据库,就需要按照MySQL服务器的要求,构造出对应的网络请求就好了。
而通过JAVA来操作MySQL就需要先得到MySQL的API,可以在MySQL的官方网站上寻找各种版本的API。(注意版本号的一致)如图:
用idea创建一个新项目,在项目目录下创建一个文件夹(与src、.idea在同级目录下,一般文件名为lib,文件名为其它也可),复制API至我们创建的文件夹内,弹出的对话框点确定,再右击创建的文件夹,选择add as library(意为添加到库)
,弹出的对话框点确定。这样就导包成功了。
而我们要做的就是用 java 语言 通过 MySQL 提供的 API 来操作数据库,这样的技术就叫做JDBC(全称:Java DataBase Connectivity standard 意为 JAVA 数据库连接标准), 如果连接其它种类的数据库(如 MongDB、Redis等)就需要其它的API接口,JAVA为了简化的对数据库操作的代码,就封装了JDBC,保证操作各种数据库的代码都基本一致。
JDBC的代码
在我们创建的项目里导包成功后,src目录下就可以新建一个 类文件 了。文件内容为:
// 在主函数里:
public static void main(String[] args) throws SQLException {
// 先和 mysql 建立连接
// 创建一个数据源,此处 DataSource 意为数据源是来自 javax.sql 里的类(需要在这个类里进行 import 导包),此处的 MysqlDataSource 是之前下载的 jar 包里导入的,也需要 import 导包,目录为com.mysql.jdbc.jdbc2.optional.MysqlDataSource
// 此处如果不使用向上转型也是完全可以的,后面也就不用向下转型了。之所以这么写是因为未来如果需要换一个数据库,改动就会更小。
DataSource dataSource = new MysqlDataSource();
// 给数据源设置一些属性(此处 Url 不是 URL ,因为要用到导包的类,所以需要对我们创建的数据源进行类型转换,调用其三个方法告诉代码数据库的服务器在哪里应该怎么进)
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://localhost:3306/lit?characterEncoding=UTF-8&useSSL=false");
((MysqlDataSource)dataSource).setUser("root");
((MysqlDataSource)dataSource).setPassword("root");
// 通过 getConnection 方法来与服务器建立连接,这里则会报错,由于不能确定上面的信息是否正确,所以需要处理异常,这里用 throw 的方法来处理异常。
Connection connection = dataSource.getConnection();
// 拼装SQL语句 ,这个语句应满足 要操作的表在url里所指的数据库里,语句正确,满足要插入的表
String sql = "insert into exam_result values (10,'lit',50,60,70)";
// 执行SQL前的准备工作,我们需要一个 语句对象 PreparedStatement可以帮助我们很方便的动态的构造出一个SQL来
PreparedStatement statement = connection.prepareStatement(sql);
// 执行SQL语句
// 当前执行的是 insert 语句, delete 和 update 语句 也使用 executeUpdate() 来完成
// 如果是 select 语句 则用 executeQuery() 来完成