JDBC的简单学习
什么是JDBC
JDBC(Java Database Connectivity) 是一种用于执行SQL 语句的Java API。它由一组用Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的API,使他们能够用纯Java API 来编写数据库应用程序。
简单的说:用java连接数据库。
JDBC 的使用
包括以下步骤
-
注册驱动程序
-
获取数据库连接
-
创建并执行 SQL语句
-
处理执行结果
-
关闭数据库连接
下面未实现JDBC的3、4
//建立一个util工具类包,新建DataAccess类,用于数据库连接和关闭 public class DataAccess { //返回一个数据库链接 private static Connection conn = null; //mysql8.0需要加上cj private static String driver="com.mysql.cj.jdbc.Driver"; //数据库用户名称,默认root private static String user="root"; //数据库密码,登陆数据库的密码 private static String password = "root"; /* jdbc:mysql:// 是指JDBC连接方式; localhost: 是指本机地址; 3306/ MYSQL数据库的端口号; school 就是你要连接的数据库的地址或者数据库名称。 */ private static String url="jdbc:mysql://localhost:3306/"+"school"; //私有方法,不能创建DareAccess对象;只能这样调用conn = DaraAccess.getConnection(); private DataAccess() { } public static Connection getConnection() { //注意静态 try { //判断数据库是否关闭,conn==null和conn.close()是完全不同的含义 if (conn == null|| conn.isClosed()) { Class.forName(driver); conn = DriverManager.getConnection (url, user, password); } } catch (ClassNotFoundException | SQLException e) { System.out.println("判断一下是不是你的MySql连接JAR包出了问题~~"); e.printStackTrace(); } return conn; } //关闭数据库 public static void closeConnection (Connection conn, PreparedStatement prep, ResultSet rs) { try { if (rs != null) rs.close(); if (prep != null) prep.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }
核心API
ResultSet 接口的方法,支持可以滚动的记录集和Java 语言来更新记录集。
Statement 接口支持批处理操作(Batch Update)。
- Statement 接口//静态SQL语句,容易引起SQL注入
- PreparedStatement 接口(继承Statement 接口)//动态SQL语句,预编译,强烈建议使用
- CallableStatement接口//存储过程
以上三个接口分别由Connection 接口的createStatement( )方法、preparedStatement( ) 方法和prepareCall( )方法创建。
BLOB 和CLOB
BLOB和CLOB 是SQL3 标准支持的新数据类型,主要用于保存大型超长的数据,如图片视频、CD 等。了解即可!
拓展
XML,都是将SQL语句写入配置文件,不再使用JDBC,简单了解使用即可!
Mybatis更是可以动态映射实例,还可以逆向工程自动生成映射文件(仍需根据项目需求更改)。