JavaApi高级编程(六)JDBC
目录
一、JDBC一 概述
二、了解JDBC的主要接口
三、JDBC操作步骤及数据库的连接
四、ResultSet接口
五、PreparedStatement的使用
六、JDSC代码优化
一、JDBC概述
1、JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力
2、JDBC(Java Data base Connectivity,Java数据库连接),由一些接口和类构成的API。
3它讲数据库访问封装在少数几个方法内,使用户可以极其方便地查询数据库、插入新的数据、更改数据。
3、J2SE的一部分,由java.sql包组成。
二、了解JDBC的主要接口
第一点主要接口
1、java.sql.DriverManager:用于驱动程序的调入
2、java.sql.Connection:与特定数据库建立连接
3、java.sql.Statement:用于SQL语句的执行,包括查询语句、更新语句、创建数据库语句等
4、java.sql.ResultSet:用于保存查询所得的结果
第二点JDBC API可做三件事与数据库建立连接、执行SQL 语句、处理结果
1、DriverManager 依据数据库的不同,管理JDBC驱动
2、Connection 负责连接数据库并担任传送数据的任务
3、 Statement 由 Connection 产生、负责执行SQL语句
4、 ResultSet负责保存Statement执行后所产生的查询结果
三、JDBC操作步骤及数据库的连接
第一步注册驱动(只做一次)
第二步建立连接(Connection)
第三步创建执行SQL的语句(Statement)
第四步执行语句
第五步处理执行结果(ResultSet)
第六步释放资源
快速起步示例Class.forName(“.mysql.jdbc.Driver”); //推荐这种方式,不会对具体的驱动类产生依赖。 DriverManager.registerDriver(.mysql.jdbc.Driver); //会造成DriverManager中产生两个一样的驱动,并会对具体的驱动类产生依赖。 System.setProperty(“jdbc.driver”,“driver1:driver2”); //虽然不会对具体的驱动类产生依赖;但注册不太方便,所以很少使用。 驱动类型(四种类型)建立连接(Connection)
Connection conn=DriverManager. getConnection(url,user,passord); url格式 JDBC子协议子名称//主机名端口/数据库名?属性名=属性值&…… user表示用户名称,一般mysql默认为“root” passord表示用户密码,在安装过程中用户设置的数据库密码。 conn表示链接变量,连接成功后,将返回一个Connection对象,以后所有对数据库的操作都可以使用这个对象来进行。创建执行SQL的语句(Statement)
Statement st = conn.createStatement(); //要对链接的数据库进行查询、更改或添加数据,可通过创建SQL语句。St表示SQL语句的变量。处理执行结果(ResultSet)
ResultSet rs = statement.executeQuery(sql); While(rs.next()){ rs.getString(“col_name”); rs.getInt(“col_name”); //…} //ResultSet对象以类似表中记录的组织方式来组织查询到得结果,表中包含了由SQL返回的列名和相应的 //值。通过getString();getObject();getInt()等得到当前记录的各列的值。释放资源
释放ResultSet, Statement,Connection. 数据库连接(Connection)是非常稀有的资源,用完后必须马上释放,如果Connection不能及时正确的关闭将导致系统宕机。Connection的使用原则是尽量晚创建,尽量早的释放。
四、ResultSet接口 Statement接口和ResultSet接口
1、获取Connection对象后就可以进行各种数据库操作了,此时需要使用Connection对象创建Statement对象。
2、Statement 对象用于将SQL语句发送到数据库中,或者理解为执行SQL语句。
3、Statement接口中包含很多基本数据库操作方法,下面介绍执行SQL命令的三个方法
4、ResultSet executeQuery(String sql)可以执行SQL查询并获取ResultSet对象;
5、Int executeUpdate( String sql )可以执行插入、删除、更新等操作,返回值是执行该操作所影响的行数;
6、Boolean execute( String sql )这是一个最为一般的执行方法,可以执行任意SQL语句,然后获得一个布尔值,表示是否返回RestultSet。
ResultSet接口常用方法及作用
五、PreparedStatement的使用
1、使用statement查询数据库时,每次执行查询时都需要将SQL语句传递给数据库,并重新解析执行,当多次执行同一查询时,就会影响效率。
2、为了提高查询效率,可以使用PreparedStatement接口,该接口将对SQL语句进行预编译,以后执行相同的语句时,就可以执行编译好的语句,从而提高查询效率。
3、PreparedStatement 接口继承 Statement接口
4、PreparedStatement比普通的Statement对象使用起来更加灵活,更有效率
六、JDSC代码优化及
public class DBHelper {
private static String ame = ".microsoft.sqlserver.jdbc.SQLServerDriver";
private static String url = "jdbc:sqlserver://localhost:1433;DatabaseName=T277";
private static String user = "sa";
private static String upd = "1122";
//静态代码块-加载类时,自动执行
static {
try {
Class.forName(ame);
} catch (Exception e) {
e.printStackTrace();
}
}
//方法一连接数据库
public static Connection getCon() {
Connection con = null;
try {
con = DriverManager.getConnection(url, user, upd);
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
//方法二关闭连接
public static void closeDb(Connection con,PreparedStatement ps,ResultSet rs) {
try {
if(con!=null) {
con.close();
}
if(ps!=null) {
ps.close();
}
if(rs!=null) {
rs.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}