1.JDBC是什么?
一组通用用于操作不同数据库的标准组件. 达到写一个java程序就可以操作所有的数据库
2.如何使用jdbc建立数据库的连接?
1>加载数据库的驱动程序
Class.forName("驱动类的完全限定名称");
mysql驱动类的名称: com.mysql.jdbc.Driver
2> 获取数据库的连接 (java.sql包就是jdbc对应的包)
提供了一个类 (java.sql.DriverManager类)
有一个静态方法getConnection()可以建立与数据库服务器的连接
这个方法需要三个连接数据库的参数:
url-----------------数据库服务器的地址
url: jdbc:mysql://数据库服务器的主机地址:3306/数据库名?characterEncoding=utf-8
user---------------用户名
root
password ----------- 密码
root
getConnection()方法会返回一个连接对象(java.sql.Connection接口)
java.sql.Connection接口-----代表是连接对象
3.如何使用jdbc来操作数据表?
jdbc当中提供了一个接口 java.sql.Statement,就可以执行各类sql语句.
如何获得Statement对象?
Connection对象有一个方法createStatement()来获取Statement对象.
对于增加,修改,创建,删除一系列的sql语句,statement对象提供了一个方法executeUpdate(),对于查询的sql语句,statement对象提供了一个方法executeQuery()来执行.
executeQuery()用来执行查询sql语句的.返回一个ResultSet对象
java.sql.ResultSet接口代表结果集,常用方法:
next() --------------判断结果集当中是否有记录
get类型() -------------获取结果集当中指定列的数据值
statement对象不安全,会出现sql注入,如果要防止sql注入,就可以使用java.sql.PreparedStatement接口,先将sql字符串在客户端进行编译,编译成sql语句. (预编译的Statement对象)
将sql字符串当中所有数据,先使用一个占位符(?)替代sql字符串当中的数据,进行sql字符串编译sql语句,然后再给占位符赋值。
如何获取PreparedStatement对象?
使用Connection对象的prepareStatement()方法就可以获取该对象
PreparedStatement对象有给占位符赋值的相关方法:
set类型(占位符的编号,设置的数据值)
PreparedStatement和Statement的区别:
1>PreparedStatement比Statement执行效率高
2>PreparedStatement更加安全,可以防止sql注入