目录
一.JDBC介绍
(程序员通过使用 jdbc 可以方便地将 SQL 语句传送给几乎任何一种数据库)
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数 据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。
流程介绍:
二.JDBC的优缺点
原文出自https://blog.csdn.net/zhouhuan1314/article/details/14141629
JDBC的优点:
直接底层操作,提供了很简单、便捷的访问数据库的方法,跨平台性比较强。灵活性比较强,可以写很复杂的SQL语句。
JDBC的缺点:
因为JAVA是面向对象的,JDBC没有做到使数据能够面向对象的编程,使程序员的思考仍停留在SQL语句上。
操作比较繁琐,很多代码需要重复写很多次。
如果遇到批量操作,频繁与数据库进行交互,容易造成效率的下降。
三.使用JDBC的前期准备工作
需要MySQL,MySQL的mysql-connector-java.jar(用于连接mysql的驱动jar包)
MySQL的下载:http://www.mysql.com/ 官网下载
mysql-connector-java.jar的下载:MySQL :: Developer Zone
以下具体展开怎么下载mysql-connector-java.jar:
首先登录官网
解压缩后的jar包就是我们需要的。
四.在编程软件内创建web项目,实践
项目目录如下,lib目录需要自己创建
随后往lib中导入jar包
点击后选择第一个,然后找到对应的位置,随后点Apply即可。
五.JDBC中对象介绍
(1)、注册驱动
//注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//mysql版本低于8.0的括号内书写为com.mysql.jdbc.Driver
//mysql版本高于8.0的括号内书写为com.mysql.cj.jdbc.Driver
(2)、获取连接
//获取连接
Connection com= DriverManager.getConnection("jdbc:mysql://127.0.0.1/u_student","root","123456");
//括号内字段为:jdbc:mysql://地址/数据库名字,用户名,密码
//一般本地mysql,写localhost或者127.0.0.1
//至于用户名和密码的正确与否可以去图形化mysql软件内测试
(3)、获取执行者连接
//获取执行者连接
Statement state=com.createStatement();
(4)、执行 SQL 语句,并接受结果
//执行mysql语句,并获取结果
String sql="SELECT * FROM student";
ResultSet resultSet=state.executeQuery(sql);
//sql内的内容是可以在mysql中运行的
(5)、处理结果
//输出结果
while(resultSet.next()){
System.out.println(resultSet.getString("name")+"\t"+resultSet.getString("name"));
}
(6)、释放资源
//释放资源
com.close();
state.close();
com.close();
总代码
package Jdbc;
import java.sql.*;
public class Jdbc {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//获取连接
Connection com= DriverManager.getConnection("jdbc:mysql://127.0.0.1/u_student","root","123456");
//获取执行者连接
Statement state=com.createStatement();
//执行mysql语句,并获取结果
String sql="SELECT * FROM student";
ResultSet resultSet=state.executeQuery(sql);
//输出结果
while(resultSet.next()){
System.out.println(resultSet.getString("name")+"\t"+resultSet.getString("name"));
}
//释放资源
com.close();
state.close();
com.close();
}
}
运行结果: