JDBC学习
JDBC是什么
- 数据库驱动程序: 有数据库厂商提供,是一个小软件,内部使用两部分语言实现:前端语言是某种编程语言,后端语言是“数据库软件语言”。它可以使得不同语言,可以直接使用驱动程序,访问数据库语言,实现数据库的交互。
- JDBC:是java 连接数据库的规范,他固定了数据库厂商的提供的驱动
- 连接步骤
- 各种行为的形参类型和返回值类型
JDBC提供了一套类库,包含各种数据类型的接口类型,以及其类。
JDBC的使用步骤
- 安装数据库
- 下载驱动
- 引用jar包
JDBC的核心类和接口
- DriverManager(类):驱动管理类,它的作用是 查找驱动程序,通过驱动程序连接数据,返回一个连接对象(Connection)
- Conection(接口)它是由上面的“驱动管理器”产生,表示程序和Mysql的连接通道,通过连接通道可以反复发送SQL语句。Connection的一个重要作用是:获取SQL执行。
- Statement(接口):SQL执行器,执行SQL语句
- ResultSet(接口):结果集,返回查询的结果集
Java实现连接数据库的步骤
需要先定义的连接信息有:
定义连接信息
String driver="com.mysql.jdbc.Driver"; String url="jdbc:mysql://localhost:3306/db_demo"; String user="root"; String password="123456";
加载驱动包
Class.forName(driver);
获取数据库连接对象
Connection con = DriverManager.getConnection(url,user,password);
获取SQL执行器
Statement stmt = con.createStatement();
执行SQL语句
ResultSet rs = stmt.executeQuery(sql);
关闭数据库
rs.close(); stmt.close(); con.close();
特别的:执行添加、删除、修改执行SQL语句的方法是 executeUpdate(String sql) 返回影响的行数
执行查询SQL语句的方法是:executQuery(String sql)返回的是一个结果集合
SQL注入的问题
- 当用户输入的数据中,包好SQL的一些格式化符号是:例如:(),逗号,单引号,这是我们不进行任何判断,直接将数据封装到SQL语句中,会导致SQL语句错误,从而引发程序异常,更严重的是会被黑客利用,盗取数据。
解决SQL注入的问题
- 不使用Statement,改用它的一个子接口–PerparedStatement(预处理的SQL执行器)它可以完全区分哪些是SQL语句和用户数据。
利用PerparedStatement操作数据库看《用户管理系统控制台版连接数据库》小程序