数据库连接是客户端连接数据库服务器的通道,客户端通过连接来操作数据库和接受数据库返回的结果集。
数据库连接主要作用是通过连接来操作数据库和接收数据库的返回结果集。
**jdbc是英文Java data base connectivity的缩写,是java数据库连接,是Java提供的数据库连接的一些接口,其实现由数据库的厂商实现,**其接口在jdk的rt.jar包的Java.sql包下,主要的接口是Driver、Connection、Statement、PreparedStatement等,其本质是Java提供的一种连接和操作数据库的规范。其体现的Java设计原则的依赖倒置原则,极大的提高了代码的灵活性,使用jdbc可以和不同的数据库进行连接。
mysql数据库用的比较多,其实现jdbc的jar是mysql-connector-java的jar包,mysql数据库提供的实现包的驱动类有两种:com.mysql.jdbc下的driver还有是com.mysql.cj.jdbc,这两个的区别是一个是mysql-connector-java 5和之前的jar,一个是mysql-connector-java 6及以后的jar提供的启动,两者的区别是后者配置中需要添加时区serverTimeZone
1、加载驱动
2、创建连接
3、获取sql执行对象
4、执行sql
5、获取结果
6、关闭连接,释放资源
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Mysql { public static void main(String[] args) throws ClassNotFoundException, SQLException { // 1、加载驱动 Class.forName("com.mysql.cj.jdbc.Driver"); // 2、获取连接 Connection connection = DriverManager.getConnection( "jdbc:mysql://localhost:3306/work?useUnicode=true&characterEncoding=utf8" + "&serverTimezone=GMT%2B8&useSSL=false&allowMultiQueries=true", "root", "root"); // 3、获取paperStatement // Statement statement = connection.createStatement(); PreparedStatement preparedStatement = connection.prepareStatement("select * from a1"); // 4、执行sql // String sql = "select * from a1"; // ResultSet resultSet = statement.executeQuery(sql); ResultSet resultSet = preparedStatement.executeQuery(); // 5、获取结果 while (resultSet.next()) { String id = resultSet.getString("id"); String name = resultSet.getString("name"); System.out.println(id + "和"+ name); } // 6、关闭连接,释放资源 resultSet.close(); preparedStatement.close(); connection.close(); } }
Java数据库连接主要是Java提供的jdbc相关的接口,数据库厂商提供接口的相关实现,从而可以操作数据库和获取数据库返回的结果集。jdbc是Java连接数据库的底层接口,使用该方式连接数据库,速度快,简单灵活,缺点是要频繁的创建和销毁连接,效率低,并且代码冗余。
jdbc是Java访问数据库最底层的接口,其实现由具体的数据库厂商实现,其类似于:我们提供了是标准插座,你只要符合我的规格,都可以插入该插座充电