JAVA基础笔记(十六)JDBC

来源:互联网 发布:windows phone 输入法 编辑:程序博客网 时间:2024/04/30 21:56
InvocationHandler代理实现接口反射与代理设计模式:    新的代理设计模式不在与工厂模式相关:    java.lang.reflect.Proxy类中有一个动态实例化新的代理对象的操作方法:    public static Objecy newProxyInstance(ClassLoader,Class<?>[]interfaces,InvocationHandler h)    ClassLocader:类加载器,确定代理对象的产生使用的类加载器是什么;    Class<?>[]interfaces: 药代理类所实现的接口;    invocationHandler h:实现了代理调用的处理;    除了Proxy类之外,还要实现一个InvocationHandler接口:public interface invocationhandler{    public Object invoke(Objecy proxy,Method mrthod,Object[] args)throws Throwable;}JDBC:    数据库的链接:    public static final String DRIVER = "oracle.jdbc.driver,OracleDriver";    public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:ORCL";    public static final String DBUSER = "scott";    public static final String PASSWORD = "123456";    main(){    向容器中加载数据库驱动程序;    Class.forName(DBDRIVER);    取得数据库连接对象,每使用一个getConnection()都表示新连接    Connection con = DriverManager.getConnection(DBURL,DBUSER,PASSWORD);}    JDBC中的数据库连接对象取得依靠的是工厂设计模式;对数据库的操作:    在Connection接口里有个方法可以取得Statement接口对象;    创建Statement接口:public Statement createStatement() throws SQLException创建接口对象之后看就可以通过方法进行对数据库的操作:    数据库的更新处理:public int executeUpdate(String sql) throws SQLException对数据库进行操作以后可以通过方法进行输出:    数据库的查询处理:public ResultSet executeQuery(String sql)throws SQLExceptionResultSet接口中相关的处理方法:    移动并判断是否有数据:public boolean next() throws SQLException    取出数据:public 数据类型getXXX();数据库脚本:drop table member;drop sequence myseq;create sequence myseq;create table member(    mid number,    name    varchar2(50),    age number(3),    birthday    DATE,    salary  number(8,2),    note CLOB,    constraint pk_mid primary key(mid));使用PreparedStatement进行更新处理:    依靠Connection接口完成PreparedStatement接口的实例化对象;    取得PreparedStement接口对象:public PreparedStatement prepareStatement(String sql)取得PreparedStatement接口对象之后对数据进行处理:    更新处理:public int executeUpdate()    查询处理:public ResultSet executeQuery()所有的占位符使用"?"描述,而随后可以使用一系列的setXxx(int 索引,内容) 的方式进行设置;    PreparedSatement接口对象设置时间日期数据时:        java.sql.Date:只保存日期数据;        java.sqlTime只保存时间数据;        java.sql.Timestamp保存日期时间数据:批处理:    Statement接口的批处理支持:        追加批处理语句:public void addBatch(String sql)        批量执行SQL:public int[] executeBatch()    PreparedStatement接口的批处理支持:        追加批处理操作:public void addBatch()
0 0