JDBC API主要功能:
与数据库建立连接,执行SQL语句,处理结果。
1.DriverManager:依据数据库的不同,管理JDBC驱动。
2.Connection:负责连接数据库并且担任传输数据的任务。
3.Statement:由Connection产生,负责执行SQL语句。
4.ResultSet:负责保存Statement执行后所产生的查询结果。
在JDBC中用到的相关方法:
1.forName();返回与带有给定字符串名的类或是接口(获取驱动类的全部名称,进行加载。)
2.getConnection();获取连接数据库的相关信息,包括:url数据库的地址及其数据库名,user用户名,password密码。
3.createStatemebt();创建一个Statement对象,将SQL语句发送到数据库。
4.executeUpdate(String sql);增,删,改都用。返回值是执行该操作所影响的行数
5.execute(String sql);可以执行任意的SQL语句,然后获得一个布尔值,表示是否返回ResulSet。
6.使用ResultSet查询表的信息
createStatement();在连接数据库的时候,获取一个可以执行的SQL语句,在这里就是查询任务。
executeQuery(String sql);执行查询时 ,要用statement类的exeuteQuery();方法来下达select指令以查询数据库,executeQuery();方法会把数据库响应的查询结果放在ResultSet类对象中供我们使用。执行SQL查询并获取到ResultSet对象
getobject();具体的查询,其中的查询可以是索引,也可以是名。
ResultSet常用方法:
Boolean next();将光标从当前位置向下移动一行
Boolean previous();游标从当前位置向上移动一行(与上面的相反)
void close(); 关闭ResultSet对象
int getInt(int colIndex); 以int形式获取结果集当前行指定列号值
int getInt(String colLabel); 以int形式获取结果集当前行指定列名值
float getFloat(int colIndex);以float形式获取结果集当前行指定列号值
float getFloat(String colLabel); 以float形式获取结果集当前行指定列名值
String getString(int colIndex); 以String形式获取结果集当前行指定列号值
String getString(String colLabel);以String形式获取结果集当前行指定列名值
PreparedStatement:
PreparedStatement可以避免注入隐患
PreparedStatement接口是继承Statement接口的,要比Statement对象使用起来更加灵活,更有效率。
列子使用:
Statement:
PreparedStatement:
1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程。
1.提高了安全性。
2.提高SQL语句执行的性能
3.提高了代码的可读性和维护性
2.使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处。
3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得,preparedstatement支持批处理