-
Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。
-
简而言之,就是jdk制定了一组连接数据库的规范接口,让各个数据库厂商来实现他们自己的驱动程序,从而达到仅仅通过一个接口可以实现对多种数据库产品的使用,大大简化了我们连接数据库,执行数据库操作的步骤。
- DriverManager:这个类管理数据库驱动程序的列表,查看加载的驱动是否符合JAVA Driver API的规范。
- Connection:与数据库进行通信的连接对象。
- Statement:把创建的SQL对象,转而存储到数据库当中。
- ResultSet:它是一个迭代器,用于检索查询数据。
-
注冊驱动 (仅仅做一次)
- Class.forName(“com.mysql.jdbc.Driver”); 推荐采用这种方式(驱动的全类名需要根据自己使用的数据库连接包中的驱动类来确定,这里采用的是mysql的驱动(旧版本))
- DriverManager.registerDriver(com.mysql.jdbc.Driver);
- System.setProperty(“jdbc.drivers”, “driver1:driver2”);
-
建立连接(Connection)
- Connection conn =DriverManager.getCoonnection(url, user, password);
- url的格式:JDBC:子协议:子名称//主机名:port/数据库名?属性名=属性值&…
- 如:"jdbc:mysql://localhost:3306/test“
- Connection conn =DriverManager.getCoonnection(url, user, password);
-
创建运行SQL的语句(Statement)
-
运行对象Statement负责运行SQL语句。由Connection对象产生
- Statement st = connection.createStatement();
-
PreparedStatement
-
对SQL语句进行预编译,这样防止了SQL注入 提高了安全性
PreparedStatement ps=connection.prepareStatement( "update user set id=? where username=?”);
sql语句中用 ? 作为通配符,变量值通过参数设入:ps.setObject(1, object);
-
-
-
运行语句
-
executeQuery(String sql)
-
该方法用于运行实现查询功能的sql语句。返回类型为ResultSet(结果集)
-
ResultSet rs = st.executeQuery(sql);
-
-
executeUpdate(String sql)
- 该方法用于运行实现增、删、改功能的sql语句,返回类型为int,即受影响的行数
- int flag = st.executeUpdate(sql);
-
-
处理运行结果(ResultSet)
- ResultSet对象负责保存Statement运行后所产生的查询结果。
- 结果集ResultSet是通过游标来操作的。
-
释放资源
- 数据库资源不关闭,其占用的内存不会被释放,徒耗资源,影响系统。
-
预备工作
-
新建java的maven项目,导入数据库连接依赖
mysql mysql-connector-java 8.0.25 - 如果不会使用maven,可以直接百度maven中央仓库在搜索栏搜索数据库如(mysql)下载jar包,或者直接百度搜索相应的jar包,导入你的工程库里即可
-
新建数据库mybatis
-
创建表person如下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PTAGjSNC-1634918677156)(C:UserssunlitAppDataRoamingTyporatypora-user-imagesimage-20211022234807254.png)]
-
-
代码
package com.sunlit.jdbc; import java.sql.*; public class demo1 { public static void main(String[] args) throws ClassNotFoundException, SQLException { String Url = "jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8"; String username = "root"; String password = "sunlit"; //1. 注册驱动 Class.forName("com.mysql.cj.jdbc.Driver"); //2. 获取数据库连接 Connection connection = DriverManager.getConnection(Url, username, password); //3. 定义sql语句,获取执行对象 String sql = "select * from person"; Statement statement = connection.createStatement(); //4. 执行sql语句 ResultSet resultSet = statement.executeQuery(sql); //5. 遍历 while(resultSet.next()){ int id = resultSet.getInt(1); String name = resultSet.getString(2); String age = resultSet.getString(3); System.out.println("id:"+id+" name:"+name+" money:"+age); } //6. 释放资源 statement.close(); connection.close(); } }- 输出结果
- 输出结果



