JDBC
(Java DataBase Connectivity
)
Java 语言连接数据库
- 再本模块中,
java
提供里一组用于连接数据库的类和接口 Java
语言开发者,本身没有提供如何具体连接数据库的功能- 只是定义了一组
java
程序连接数据库的访问接口- 连接到数据库
- 向数据库发送增,修改,删除这一类的sql
- 发送查询sql
java
语言并没有给实现连接数据库的功能,只提供了接口,需要开发商自己去写如何实现连接的java
只需要定义一套接口,就可以连接不同数据库- 所有通过这一系列操作,Java开发人员只需要编写一次程序,连接多个数据库
JDBC API
:
提供程序员调用的接口与类,继承在java.sql包中
-
- 创建
lib
文件夹,把官方的jar放入
- 创建
-
DriverManager
类的作用:管理各种不同的JDBC
-
声明方式
-
//2.注册驱动//Class.forName("com.mysql.cj.jdbc.Driver");//反射方式加载驱动类DriverManager.registerDriver(new Driver());
-
-
Connection
接口 与特定的数据库的连接-
URL = jdbc:mysql://[ip地址]:[端口]/[数据库名]?severTimezone=[地区 Asia/Shanghai]
国内是Asia/Shanghai -
USER = [mysql用户名]
-
PASS = [mysql密码]
-
Connection connection = DriverManager.getConnection(url, user, pass);
-
//3.建立连接String url = "jdbc:mysql://127.0.0.1:3306/student2?serverTimezone=Asia/Shanghai";String user = "root";String password = "root";Connection connection = DriverManager.getConnection(url, user, password);System.out.println(connection);
-
-
Satement
执行语句
如下
public ArrayList<ResidentConnect> search_residentConnect() throws SQLException {DriverManager.registerDriver(new Driver());String url = "jdbc:mysql://127.0.0.1:3306/counter?serverTimezone=Asia/Shanghai";String user = "root";String password = "root";//---------------------------------------------------Connection connection = DriverManager.getConnection(url, user, password);
// 开始查找PreparedStatement pre = connection.prepareStatement("SELECT rc.id,rc.residentId,rc.studentId,rc.adminId,rc.oper_time,s.name AS sname,s.num AS snum,r.num AS rnum\n" +"FROM resident_Connect rc\n" +"LEFT JOIN student s ON s.id = rc.studentId\n" +"LEFT JOIN resident r ON r.id = rc.residentId");ResultSet re = pre.executeQuery();ArrayList<ResidentConnect> arrayList = new ArrayList<>();while (re.next()){ResidentConnect residentConnect = new ResidentConnect();residentConnect.setId(re.getString("id"));residentConnect.setStudentId(re.getString("studentId"));residentConnect.setResidentId(re.getString("residentId"));residentConnect.setAdminId(re.getString("adminId"));residentConnect.setOper_time(re.getString("oper_time"));residentConnect.setSname(re.getString("sname"));residentConnect.setSnum(re.getString("snum"));residentConnect.setRnum(re.getString("rnum"));arrayList.add(residentConnect);}return arrayList;}