




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
传智播客Jdbc1方立勋讲课教案 高级软件人才实作培训专家!IT资讯交流网.IT315.ORG.itcast. JDBC开发讲师方立勋高级软件人才实作培训专家!IT资讯交流网.IT315.ORG.itcast. TipJDBC简介?数据库驱动?SUN公司为统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC。 MySQL OracleMySQL驱动Oracle驱动应用程序MySQL OracleMySQL驱动Oracle驱动应用程序JDBC高级软件人才实作培训专家!IT资讯交流网.IT315.ORG.itcast. TipJDBC简介?JDBC全称为Java DataBase Connectivity(java数据库连接),它主要由接口组成。 ?组成JDBC的个包?java.sql?javax.sql?开发JDBC应用需要以上2个包的支持外,还需要导入相应JDBC的数据库实现(即数据库驱动)。 高级软件人才实作培训专家!IT资讯交流网.IT315.ORG.itcast. Tip第一个第一个JDBC程序?编写一个程序,这个程序从user表中读取数据,并打印在命令行窗口中。 一、搭建实验环境 1、在mysql中创建一个库,并创建user表和插入表的数据。 2、新建一个Java工程,并导入数据驱动。 二、编写程序,在程序中加载数据库驱动DriverManager.registerDriver(Driver driver) 三、建立连接(Connection)Connection conn=DriverManager.getConnection(url,user,pass); 四、创建用于向数据库发送SQL的Statement对象,并发送sql Statement st=conn.createStatement();ResultSet rs=st.excuteQuery(sql); 五、从代表结果集的ResultSet中取出数据,打印到命令行窗口 六、断开与数据库的连接,并释放相关资源Demo1.java高级软件人才实作培训专家!高级软件人才实作培训专家!IT资讯交流网.IT315.ORG.itcast. Tip数据库URL?常用数据库URL地址的写法?Oraclejdbc:oracle:thin:localhost:1521:sid?SqlServerjdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=sid?MySqld jdbc:mysql:/localhost:3306/sid?Mysql的url地址的简写形式jdbc:mysql:/sid?常用属性useUnicode=true&characterEncoding=UTF-8?URL用于标识数据库的位置,程序员通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为jdbc:mysql:/localhost:3306/test?参数名参数值协议子协议主机端口数据库高级软件人才实作培训专家!IT资讯交流网.IT315.ORG.itcast. Tip程序详解Connection?Jdbc程序中的Connection,它用于代表数据库的链接,Collection是数据库编程中最重要的一个对象,客户端与数据库所有交互都是通过connection对象完成的,这个对象的常用方法?createStatement()创建向数据库发送sql的statement对象。 ?prepareStatement(sql)创建向数据库发送预编译sql的PrepareSatement对象。 ?prepareCall(sql)创建执行存储过程的callableStatement对象。 ?setAutoCommit(boolean autoCommit)设置事务是否自动提交。 ?mit()在链接上提交事务。 ?rollback()在此链接上回滚事务。 高级软件人才实作培训专家!IT资讯交流网.IT315.ORG.itcast. Tip程序详解Statement?Jdbc程序中的Statement对象用于向数据库发送SQL语句,Statement对象常用方法?execute(String sql)用于向数据库发送任意sql语句?executeQuery(String sql)只能向数据发送查询语句。 ?executeUpdate(String sql)只能向数据库发送insert、update或delete语句?addBatch(String sql)把多条sql语句放到一个批处理中。 ?executeBatch()向数据库发送一批sql语句执行。 高级软件人才实作培训专家!IT资讯交流网.IT315.ORG.itcast. Tip程序详解ResultSet?Jdbc程序中的ResultSet用于代表Sql语句的执行结果。 Resultset封装执行结果时,采用的类似于表格的方式。 ResultSet对象维护了一个指向表格数据行的游标,初始的时候,游标在第一行之前,调用ResultSet.next()方法,可以使游标指向具体的数据行,进行调用方法获取该行的数据。 ?ResultSet既然用于封装执行结果的,所以该对象提供的都是用于获取数据的get方法?获取任意类型的数据?getObject(int index)?getObject(string columnName)?获取指定类型的数据,例如?getString(int index)?getString(String columnName)?提问数据库中列的类型是varchar,获取该列的数据调用什么方法?Int类型呢?bigInt类型呢?Boolean类型?高级软件人才实作培训专家!IT资讯交流网.IT315.ORG.itcast. Tip常用数据类型转换表常用数据类型转换表高级软件人才实作培训专家!IT资讯交流网.IT315.ORG.itcast. Tip程序详解ResultSet?ResultSet还提供了对结果集进行滚动的方法?next()移动到下一行?Previous()移动到前一行?absolute(int row)移动到指定行?beforeFirst()移动resultSet的最前面。 ?afterLast()移动到resultSet的最后面。 高级软件人才实作培训专家!IT资讯交流网.IT315.ORG.itcast. Tip程序详解释放资源?Jdbc程序运行完后,切记要释放程序在运行过程中,创建的那些与数据库进行交互的对象,这些对象通常是ResultSet,Statement和Connection对象。 ?特别是Connection对象,它是非常稀有的资源,用完后必须马上释放,如果Connection不能及时、正确的关闭,极易导致系统宕机。 Connection的使用原则是尽量晚创建,尽量早的释放。 ?为确保资源释放代码能运行,资源释放代码也一定要放在finally语句中。 高级软件人才实作培训专家!IT资讯交流网.IT315.ORG.itcast. Tip使用JDBC对数据库进行CRUD?Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可。 ?Statement对象的executeUpdate方法,用于向数据库发送增、删、改的sql语句,executeUpdate执行完后,将会返回一个整数(即增删改语句导致了数据库几行数据发生了变化)。 ?Statement.executeQuery方法用于向数据库发送查询语句,executeQuery方法返回代表查询结果的ResultSet对象。 ?练习编写程序对User表进行增删改查操作。 ?练习编写工具类简化CRUD操作。 (异常暂不处理)高级软件人才实作培训专家!IT资讯交流网.IT315.ORG.itcast. TipCRUD操作-create?使用executeUpdate(String sql)方法完成数据添加操作,示例操作Statement st=conn.createStatement();String sql=insert intouser(.)values(.);int num=st.executeUpdate(sql);if(num0)System.out.println(插入成功!);高级软件人才实作培训专家!IT资讯交流网.IT315.ORG.itcast. TipCRUD操作-updata?使用executeUpdate(String sql)方法完成数据修改操作,示例操作Statement st=conn.createStatement();String sql=“update userset name=where name=;int num=st.executeUpdate(sql);if(num0)System.out.println(“修改成功!);高级软件人才实作培训专家!IT资讯交流网.IT315.ORG.itcast. TipCRUD操作-delete?使用executeUpdate(String sql)方法完成数据删除操作,示例操作Statement st=conn.createStatement();String sql=“delete from user where id=1;int num=st.executeUpdate(sql);if(num0)System.out.println(“删除成功!);高级软件人才实作培训专家!IT资讯交流网.IT315.ORG.itcast. TipCRUD操作-read?使用executeQuery(String sql)方法完成数据查询操作,示例操作Statementst=conn.createStatement();String sql=“select*fromuserwhereid=1;ResultSet rs=st.executeUpdate(sql);while(rs.next()/根据获取列的数据类型,分别调用rs的相应方法/映射到java对象中高级软件人才实作培训专家!IT资讯交流网.IT315.ORG.itcast. Tip实例练习用户注册和登陆?改写前面讲解的用户注册和登陆案例,实现如下需求 1、把xml换成数据库,重写UserDao。 2、定义DAO接口,并定义Dao工厂,实现web层和dao层的解耦。 3、自定义dao异常。 4、防范sql注入攻击?SQL注入是用户利用某些系统没有对输入数据进行充分的检查,从而进行恶意破坏的行为。 1、statement存在sql注入攻击问题,例如登陆用户名采用or1=1or name= 2、防范SQL注入,需要采用PreparedStatement取代Statement。 高级软件人才实作培训专家!IT资讯交流网.IT315.ORG.itcast. TipPreparedStatement?PreperedStatement是Statement的孩子,它的实例对象可以通过调用Connection.preparedStatement()方法获得,相对于Statement对象而言?PreperedStatement可以避免SQL注入的问题。 ?Statement会使数据库频繁编译SQL,可能造成数据库缓冲区溢出。 PreparedStatement可对SQL进行预编译,从而提高数据库的执行效率。 ?并且PreperedStatement对于sql中的参数,允许使用占位符的形式进行替换,简化sql语句的编写。 ?练习使用PreparedStatement改写UserDao高级软件人才实作培训专家!IT资讯交流网.IT315.ORG.itcast. TipJDBC综合练习综合练习-客户管理创立如下数据库表customer,并完成web下的crud操作高级软件人才实作培训专家!IT资讯交流网.IT315.ORG.itcast. Tip数据库分页?MySQL分页的实现?Select*from tablelimit M,N?M记录开始索引位置?N取多少条记录。 ?完成WEB页面的分页显示?先获得需分页显示的记录
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沈阳市中石化2025秋招笔试性格测评专练题库及答案
- 中国广电营口市2025秋招笔试行测题库及答案通信技术类
- 江苏地区中储粮2025秋招仓储保管岗高频笔试题库含答案
- 中国移动通化市2025秋招笔试行测题库及答案市场与服务类
- 中国联通河北地区2025秋招心理测评常考题型与答题技巧
- 丹东市中石化2025秋招笔试综合知识专练题库及答案
- 临夏回族自治州中石油2025秋招笔试模拟题含答案市场营销与国际贸易岗
- 娄底市中石化2025秋招笔试综合知识专练题库及答案
- 国家能源濮阳市2025秋招面试专业追问及参考采矿工程岗位
- 中国广电阳江市2025秋招综合管理类专业追问清单及参考回答
- 【生物 黑吉辽蒙版】2025年普通高等学校招生选择性考试(解析版)
- T/CNFAGS 15-2024绿色合成氨分级标准(试行)
- 建筑工程答辩试题及答案
- 综合应用能力b类试卷及真题答案
- 行测资料5000题题库
- 2025-2030中国资产托管行业市场发展分析及前景趋势与投资研究报告
- 小程序租赁协议合同
- 幼儿园科普航空知识课件
- 初中八年级等腰三角形的作业设计
- 大学英语四级单词表
- 肺功能课件完整版本
评论
0/150
提交评论