`
hao861002
  • 浏览: 86442 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jdbc复习第二天

阅读更多


预编译的Statement

PreparedStatement 可以使用参数替代sql语句中的某些参数使用 "?"代替,他先将带参数的sql语句发送到数据库,进行编译,然后PreparedStatement会将参数发送给数据库。
在使用PreparedStatement时,在设置相应参数时,要指明参数的位置和类型,以及给出参数值
根据不同的参数类型使用不同的setXXX(参数的位置,参数值)来设置参数

例:
public void insert(Student s){
  Connection con=ConnectionFactory.getConnection();//建立连接
  String sql="insert into student(id,name) values(?,?)";
  PreparedStatement ps=null;
  try {
   ps=con.prepareStatement(sql);//创建一个PreparedStatement
                        int index=1;
   ps.setInt(index++,s.getStuId());
   ps.setString(index++,s.getName());
   ps.executeUpdate();
  } catch (SQLException e) {
   e.printStackTrace();
  }finally{
   if(ps!=null)
    try {
     ps.close();
    } catch (SQLException e) {
     e.printStackTrace();
    }
    if(con!=null)
     try {
      con.close();
     } catch (SQLException e) {
      e.printStackTrace();
     }
  }
 }

CallableStatement是可以用非sql语句来访问数据库,他是通过调用存储过程(PL/SQL)来访问数据库的。可以直接使用连接来调用 prepareCall(...)方法,来执行这个存储过程,"..."是存储过程的名字。

对于系统时间要去数据库时间
TimeStamp 和 Date都可以保存时间
TimeStamp可以保存时、分、秒的数据,Date只保存日期年月的信息。

SQLException是检查异常必须处理要么throws ,要么try{}catch(){}
getErrorCode()可以获得错误码,可以对错误进行查询。

源数据

JDBC中有两种源数据,一种是数据库源数据,另一种是ResultSet源数据。

源数据就是描述存储用户数据的容器的数据结构。

ResultSet rs=ps.executeQuery(sql);
ResultSetMetaData m=rs.getMetaData();

getColumnCount(),获得实际列数
getColumnName(int colnum),获得指定列的列名
getColumnType(int colnum),获得指定列的数据类型
getColumnTypeName(int colnum),获得指定列的数据类型名

数据库源数据

DatabaseMetaData
getURL(),获得连接数据库的URL
getDatabaseProductName() 获得数据库产品的名称
getDriverVersion() 获得JDBC驱动程序的String形式的版本号
getTables()获得数据库中该用户的所有表
getUserName() 获得数据库用户名。

事务(Transaction)
事务是针对原子操作的,要求原子操作不可再分,要求原子操作必须同时成功同时失败。
事务是捆绑的原子操作的边界。
JDBC中使用事务,先要使用连接调用setAutoCommite(false)方法,把自动提交(commit)置为false。打开事务就要关闭自动提交。不用事务是要把setAutoCommite(true)

在处理事务时,在发送sql语句后执行成功并确认时,就在try块中使用连接调用commit()方法来发送提交信息,在发送sql语句后执行失败时,会在catch语句块中使用连接调用rollback()方法来发送回滚信息,也可以在需要时做回滚操作(主观原因)。

 

分享到:
评论

相关推荐

    达内学习用的jdbc与struts笔记.pdf

    - 第二天:可能深入讲解了Action类、Form Beans、ActionMapping和ActionForward等关键概念。 - 第三天:可能涉及视图层的JSP和Struts标签库的使用,以及如何处理表单提交。 - 第四天:可能讨论了异常处理、国际化...

    hibernate达内五天复习笔记.pdf

    - 第二天可能涉及了更具体的映射配置和实例,如XML配置文件或注解方式的映射。 - 第三天可能深入到对象状态的转换和生命周期管理,以及如何处理事务。 - 第四天可能讲解了HQL的使用,包括查询、更新、删除等操作...

    smbms超市订单管理系统(Java课设源码).zip

    2022-10-31:第二天。登录注销功能,修改密码功能,用户管理部分实现 2022-11-01:第三天。完成整个用户管理模块。学习到了小黄鸭调试法 —— 将自己的逻辑重新复述一遍,在此过程中找到漏洞 2022-11-02:第四天。...

    传智播客崔希凡JavaWeb-day16-mysql第二天-全部资料

    在本压缩包“传智播客崔希凡JavaWeb-day16-mysql第二天-全部资料”中,包含的是一系列与JavaWeb开发和MySQL数据库相关的学习资料,特别适合那些正在学习或已经学习过崔希凡老师JavaWeb课程的学员。这个资源集提供了...

    Java学习100天速成课件

    首先,我们从【第二章 Java语言的基础知识.ppt】开始,这部分内容会讲解Java的基本语法,包括变量、数据类型、运算符、控制结构(如if语句、for循环、while循环)以及方法的定义和调用。学习者将在此阶段掌握编写...

    2022年计算机科学与技术毕业实习报告的范文.docx

    2. 第二天,通过实例学习数据库操作,包括表的创建、查询等,熟练掌握Myeclipse,初步理解JDBC。 3. 第三天,深化对JDBC的理解,巩固数据库操作技能,为后续学习打下基础。 实习报告反映了学生们在实际项目中应用所...

    【免费】方立勋JavaWeb[1-11day]源码

    第二天至第四天,可能会深入讲解Servlet的生命周期、请求响应处理机制以及JSP的基本使用。第五天到第七天,可能涵盖JSTL(JavaServer Pages Standard Tag Library)和EL(Expression Language)的使用,这两个工具...

    21天学通JAVA-WEB开发电子教案(PPT)

    【文件名称列表】虽然未提供具体的文件名,但通常这样的教程会包含多个PPT文件,每个文件可能对应课程的不同章节,如"第一天:Java语言基础"、"第二天:Servlet介绍"、"第三天:JSP基本语法"等,逐步深入,逐步引导...

    Day07实习日记1

    在2017年7月10日的这一天,我在南京华信智源教育科技有限公司的工科楼A203进行了Java实训的第七天。指导老师是张明星,我们主要进行了以下几个方面的学习和实践: 一、回顾与数据库编写 上午的课程开始,预留了半...

    Java学习路线图.pdf

    第二部分主要关注J2EE(Java 2 Enterprise Edition)框架的学习,总时长27天。首先,学员会花12天学习DRP(Distribution Resource Planning)项目,这涉及到企业级应用的开发。接下来,分别用6天的时间学习Struts、...

    Eclipse开发分布式商城系统+完整视频代码及文档

    │ 淘淘商城第二天笔记.docx │ ├─03.第三天 │ 01.课程回顾.avi │ 02.课程计划.avi │ 03.什么是反向代理.avi │ 04.nginx的反向代理及负载均衡.avi │ 05.FastDFS介绍.avi │ 06.FastDFS安装步骤-文件上传.avi...

    30天学通Java项目案例开发

    - **第3章 广陵学院图书馆管理系统**:本章继续介绍另一个具体项目的开发过程,涉及Swing和JDBC等技术。 #### 五、读者对象 本书不仅适合Java初学者阅读,也适合有一定基础的开发人员作为参考。无论您是希望快速...

    各大公司java面试大汇总2

    【标签】"各大公司面试大汇总2"进一步确认了这份资料的性质,它是继第一版之后的第二部分,意味着可能有一个类似的前期资料集,提供了更全面的面试题库。这样的标签也有助于求职者找到相关的学习资源,进行系统的...

Global site tag (gtag.js) - Google Analytics