JDBC复习(总结)

来源:互联网 发布:网络上深水井的意思 编辑:程序博客网 时间:2024/05/16 07:08

JDBC复习
String url = "jdbc:mysql://localhost/portal?useUnicode=true&characterEncoding=gb2312";
String username= "root";
String password= "";
String sql="";
使用JDBC四步曲:
加载JDBC驱动器:Class.forName("com.mysql.jdbc.Driver");
使用此驱动器打开数据库连接:Connection conn=DriverManager(url,username,password);
创建PreparedStatement对象处理SQL语句:PreparedStatement ps=conn.prepareStatement(sql);或者Statement stmt=conn.createStatement();
处理SQL返回的结果集:ResultSet rs=ps.executeQuery();/int a=ps.executeUpdate();或者ResultSet rs=stmt.executeQuery(sql);/int a=stmt.executeUpdate(sql);

JDBC驱动器:
类型1:JDBC-ODBC桥,通过一个中间ODBC驱动器连接到数据库
类型2:本地API,使用本地方法调用厂家指定的API函数
类型3:纯JAVA到数据库中间件,使用到中间件服务器的网络协议进行通信,此中间件服务器再与数据库通信
类型4:纯JAVA直接到数据库,直接调用数据库使用的本地协议

四种执行方法:
executeUpdate():处理INSERT,UADATE,DELETE,CREATE,DROP语句,返回已修改行的行数
executeQuery():处理SELECT语句,返回结果集
execute():可处理上述两种情况,返回一个指出其结果是否是一个修改数量或结果集的boolean值
executeBatch():批处理,可以提高处理速度。处理多个修改语句,返回更新计数组成的一个数组。具体方法如下:
    Connection conn=DriverManager(url);
    Statement stmt = con.createStatement();
    con.setAutoCommit(false);   //设置为不是自动提交事务
    stmt.clearBatch();  //重置批处理为空
    stmt.addBatch("INSERT INTO test VALUES('1','1')");  //向批处理加入一个修改语句
    stmt.addBatch("INSERT INTO test VALUES('2','2')");
    stmt.addBatch("INSERT INTO test VALUES('3','3')");
    stmt.addBatch("INSERT INTO test VALUES('4','4')");
    int[] updateCounts = stmt.executeBatch();  //确认批处理,并搜索修改计数
    con.commit(); //提交事务


尽量使用PreparedStatement,不要使用Statement。不仅可以提高处理性能,而且可以避免动态语法错误。PreparedStatement与Statement的另一个区别是使用PreparedStatement可以在SQL中设置参数,通过?来表示参数。这些参数用作语句中的占位符,在执行前必须赋值。赋值方法是通过ps.setString(int i,String str);或者ps.setXxx(int i,xxx x);可以用于所有的数据类型。其中第一个参数i是参数出现的序列号,第二个参数是要插入的值。

SQL与PL/SQL的区别:
SQL是标准的结构化查询语言
PL/SQL是ORACLE对标准数据库语言的扩展,在标准SQL中加入了变量声明,异常处理,过程,函数,IF...ELSE...  , For....等的SQL

CallableStatement:
CallableStatement是PreparedStatement的子类,它扩展了PreparedStatement,同样可以设置SQL参数值。CallableStatement 对象为所有的 DBMS 提供了一种以标准形式调用已储存过程的方法。已储存过程储存在数据库中。对已储存过程的调用是 CallableStatement 对象所含的内容。创建CallableStatement的方法:CallableStatement cstmt=conn.prepareCall(sql);
在 JDBC 中调用已储存过程的语法如下所示。注意,方括号表示其间的内容是可选项;方括号本身并不是语法的组成部份:{call 存储过程名称[(?, ?, ...)]}。
关于存储过程,有待进一步学习。

元数据:
元数据(Metadata)是关于数据的数据或关于信息的信息。例如:书的文本就是书的数据,而书名、作者、版权数据都是书的元数据。如果打一个形象的比喻,元数据可以看成是一个路标,它能帮助用户从浩如烟海的数据中迅速找到符合特定需求的信息。一般数据库系统用他来表示数据的信息,例如数据的类型,长度,存放位置等关于数据的信息用来管理和维护数据。元数据是从不同系统中提取出来的关键数据,可以帮助用户迅速找到所需的信息。元数据的使用,可以大大提高系统的检索和管理的效率。连接和结果集的大量信息可以从元数据对象中得到,JDBC提供了两个元数据对象类型DatabaseMetaData和ResultSetMetaData。
 

原创粉丝点击