ImageVerifierCode 换一换
格式:PPT , 页数:38 ,大小:109.50KB ,
资源ID:13881397      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13881397.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JDBC-PPTPPT文件格式下载.ppt)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

JDBC-PPTPPT文件格式下载.ppt

1、本地API;JDBC网络纯Java驱动程序;本地协议纯Java驱动程序。,建立连接(Connection),Connection conn=DriverManager.getConnection(url,user,password);url格式:JDBC:子协议:子名称/主机名:端口/数据库名?属性名=属性值,创建执行SQL的语句(Statement),Statement Statement st=conn.createStatement();st.executeQuery(sql);PreparedStatementString sql=“select*from table_name whe

2、re col_name=?”;PreparedStatement ps=conn.preparedStatement(sql);ps.setString(1,“col_value”);ps.executeQuery();,处理执行结果(ResultSet),ResultSet rs=statement.executeQuery(sql);While(rs.next()rs.getString(“col_name”);rs.getInt(“col_name”);/,释放资源,释放ResultSet,Statement,Connection.数据库连接(Connection)是非常稀有的资源,用完

3、后必须马上释放,如果Connection不能及时正确的关闭将导致系统宕机。Connection的使用原则是尽量晚创建,尽量早的释放。,基本的CRUD(创建、读取、更新、删除),模板代码 Connection conn=null;Statement st=null;ResultSet rs=null;try/获得Connection/创建Statement/处理查询结果ResultSet finally/释放资源ResultSet,Statement,Connection,创建,增加对应SQL的INSERT,返回增加成功的行(记录)数 conn=getConnection();Statement

4、 st=conn.createStatement();String sql=“insert into user(name,age,regist_date)”+“values(name,10,now()”;int i=st.executeUpdate(sql);/i为插入的记录数,读取,读取(查询)对应SQL的SELECT,返回查询结果conn=getConnection();st=conn.createStatement();String sql=select id,name,age,regist_date from user;rs=st.executeQuery(sql);while(rs.

5、next()System.out.print(rs.getInt(id)+tt);System.out.print(rs.getString(name)+tt);System.out.print(rs.getInt(age)+tt);System.out.print(rs.getTimestamp(regist_date)+tt);System.out.println();,更新,更新(修改)对应SQL的UPDATE,返回被修改的行(记录)数 conn=getConnection();String sql=“update person set name=new name”;/i为符合条件的记录

6、数,删除,删除对应SQL的DELETE,返回被删除的行(记录)数 conn=getConnection();String sql=“delete from user where id=1”;/i为删掉的记录数,CRUD总结,增、删、改用Statement.executeUpdate来完成,返回整数(匹配的记录数),这类操作相对简单。查询用Statement.executeQuery来完成,返回的是ResultSet对象,ResultSet中包含了查询的结果;查询相对与增、删、改要复杂一些,因为有查询结果要处理。,SQL注入,PreparedStatement和Statement,在SQL中包含

7、特殊字符或SQL的关键字(如:or 1 or)时Statement将出现不可预料的结果(出现异常或查询的结果不正确),可用PreparedStatement来解决。PreperedStatement(从Statement扩展而来)相对Statement的优点:1.没有SQL注入的问题。2.Statement会使数据库频繁编译SQL,可能造成数据库缓冲区溢出。3.数据库和驱动可以对PreperedStatement进行优化(只有在相关联的数据库连接没有关闭的情况下有效)。,数据类型,详细信息见java.sql.Types几种特殊且比较常用的类型1.DATA,TIME,TIMESTAMP date

8、,time,datetime存:ps.setDate(i,d);ps.setTime(i,t);ps.setTimestamp(i,ts);取:rs.getDate(i);rs.getTime(i);rs.getTimestamp(i);2.CLOB text 存:ps.setCharacterStream(index,reader,length);ps.setString(i,s);reader=rs.getCharacterStream(i);reader=rs.getClob(i).getCharacterStream();string=rs.getString(i);3.BLOB bl

9、ob 存:ps.setBinaryStream(i,inputStream,length);rs.getBinaryStream(i);rs.getBlob(i).getBinaryStream();,一个简单用户相关的数据访问层,J2EE三层架构简介表示层、业务逻辑层、数据访问层,三层之间用接口隔离。定义domain对象User,定义存取用户的接口用JDBC实现接口用配置文件(properties)和反射实现与具体类的耦合,事务(ACID),原子性(atomicity):组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一部分。一致性(consistency):在事务处理执行前后,数据库

10、是一致的(数据库数据完整性约束)。隔离性(isolcation):一个事务处理对另一个事务处理的影响。持续性(durability):事务处理的效果能够被永久保存下来。connection.setAutoCommit(false);/打开事务。mit();/提交事务。connection.rollback();/回滚事务。,事务(SavePoint),当只想撤销事务中的部分操作时可使用SavePointSavePoint sp=connection.setSavepoint();connection.rollerbak(sp);,事务(JTA),跨越多个数据源的事务,使用JTA容器实现事务。分

11、成两阶段提交。javax.transaction.UserTransaction tx=(UserTransaction)ctx.lookup(“jndiName);tx.begin();/connection1 connection2(可能来自不同的数据库)mit();/tx.rollback();,隔离级别多线程并发读取数据时的正确性,connection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);V:可能出现,X:不会出现,存储过程,存储过程CallableStatement(从PreperedState

12、ment扩展来)cs=connection.prepareCall(“call psname(?,?)”);cs.registerOutParameter(index,Types.INTEGER);cs.setXXX(i,xxxx);cs.executeUpdate();int id=cs.getInt(index);,其他的几个API,PreparedStatement.getGeneratedKeys()PreparedStatement ps=connection.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);ps.execu

13、teUpdate();ResultSet rs=st.getGeneratedKeys();rs.getInt(1);批处理,可以大幅度提升大量增、删、改的速度。PreparedStatement.addBatch();PreparedStatement.executeBatch();,其他的几个API,可滚动的结果集Statement st=connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);ResultSet rs=st.executeQuery(sql);rs.bef

14、oreFirst();rs.afterLast();rs.first();rs.isFirst();rs.last();rs.isLast();rs.absolute(9);rs.moveToInsertRow();可更新的结果集conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);rs.updateString(col name,new value);rs.updateRow();,DatabaseMetaData和ParameterMetaData,DatabaseMetaData meta=connection.getMetaData();通过DatabaseMetaData可以获得数据库相关的信息如:数据库版本、数据库名、数据库厂商信息、

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1