JDBC学习笔记(1)

Jdbc使用:

JDBC API 简介

    Driver接口和DriverManager类:前者表示驱动器,后者表示驱动管理器

     Connection接口:数据库连接

     Statement接口 负责执行SQL语句

     PreparedStatement 负责执行预编译的SQL语句

     CallableStatement 负责执行SQL存储过程

     ResultSet接口 查询语句返回的结果集

1.Driver接口和DriverManager

a)  DriverManager类用来建立和数据库的连接,以及管理JDBC驱动器,一下方法

i.  registerDriver(Driver) 在DriverManager注册JDBC驱动器

ii.  getConnection(String url,String user,String pwd):建立和数据库的连接,并返回表示数据库连接到Connection对象

iii.setLoginTimeOut(inseconds) 设定连接数据超时时间

iv.  setLogWriter(PrintWriter out) 设定数据JDBC日志的PrintWriter对象

b)  Connection接口
Connection代表Java程序和数据库的连接,主要方法如下

i.  getMetaDat() 返回表示数据库的元数据的DatabaseMetaData对象.

ii.  createStatement 创建并返回Statement对象

iii.prepareStatement(Stringsql) :创建并返回PreparedStatemen对象

c)  Statement接口
     Statement接口主要提供了执行SQL语句的方法

i.  Execute(String sql) 执行SQL语句,返回一个boolean类型表示是否有查询结果如果有则使用getResultSet()方法获得这一查询结果

ii.  executeUpdate(String sql) 执行SQL的insert,update和delete语句,返回一个int类型的值,表示数据库中受该SQL语句影响的记录的数目.

iii.executeQuery(Stringsql) 执行SQL的select语句.返回一个ResultSet对象

d)  PreparedStatement
     PreparedStatement继承了Statement.可以进行格式化的执行sql语句
     在SQL语句中使用"?"作为占位符,然后使用此对象的setXX方法给占位符依次赋值.

e)  ResultSet接口表示select查询语句得到的结果集.
     使用next()方法去除结果集中的一行数据然后使用下列方法去除数据

i.  getXXX(int columnIndex)返回指定字段的XXX类型值,columnIndex字段的索引位置

ii.  getXXX(String columnName)返回指定字段的XXX类型的值,参数columnName代表字段的名

f)  ResultSetMetaData
     ResultSet的元数据.使用ResultSet.getMetaData()方法获得

i.  getColumnCount():返回结果集包含的列数.

ii.  getColumnLable(int i) 返回第i列的字段名字.

iii.getColumnType(inti) 返回结果第i列的字段的SQL类型.

iv.  getTables(String catalog,String schemaPattern,StringtableNamePattern,String[] types) 返回数据库中符合参数给定条件的所有表

a)  Catalog:指定表所在的目录.

b)  schemaPattern:表锁在的Schema

c)  tableNamePattern,匹配的字符串模式

d)  Types 指定表的类型

v.  getMaxConnections 返回数据库允许建立的连接的最大数目

vi.  getMaxStatements 返回最大Statement对象数目

g)  SQLException异常类

i.  getErrorCode() 返回数据库系统提供的错误编码.

ii.  getSQLState() 返回系统库系统提供的错误状态.

2.JDBC 使用步骤

a)  首先在网上下载数据区的驱动器.jar放入classpath中

b)  使用Calss.forName("包名.XXXXDriver")加载JDBC驱动器

c)  使用 DriverManager.registerDriver注册驱动器

d)  建立数据库的连接Connectioncon=DriverManager.getConnection(url,user,pwd)

       Url的一般形式为:jdbc:drivertype:driversubtype://paramenters
       例如Oracle jdbc:oracle:thin:@localhost:1521:sid
         SQLServer:jdbc:microsoft:sqlserver:localhost:1433;DatabaseName=XX

           MySQL:jdbc:mysql://localhost:3306/库名

e)创建Statment对象.Statment stm=con.createStatment()

f)执行SQL语句

g)遍历ResultSet对象

h)依次关闭ResultSet,Statment和Connection对像,按照此顺序

E和F步可以使用PreparedStatement对象代替查询

3.处理字符编码的转换

将GB2312转换为ISP-8859-1

String name=newString("小王".getBytes("GB2312"),"ISO-8859-1")

4.管理onnection,Statement,ResultSet对象的生命周期

a)Statment的最大数量

使用DatabaseMetaData.getMaxStatement方法获得

5.输出JDBC日志
默认状态下JDBC不会输出任何日志信息.只要通过DriverManager的静态setLogWriter方法设置日志输出地就可以.

6.调用存储过程

a)使用CallableStatement接口执行,Connection的perpareCall方法创建一个CallableStatement对象.此对象可以使用占位符?

7.控制事物

a)    使用Connection的setAutoCommit(bool)设置是否自动提交事物

b)    commit()提交事物rollback()回滚

c)    保存点:SavepointsetSavepoint(String name)

d)    保存点:Savepoint setSavepoint()

e)    取消保存点:releaseSavepoint(Savepoint)

f)    滚回保存点:rollback(Savepoint)

8.批量更新:

a)    使用Statement接口的addBatch(String sql)加入语句

b)    使用executeBatch执行批量更新

c)    使用DatabaseMetaData接口库的supportsBatchUpdates()方法判断驱动器是否支持批量更新

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值