第四章 数据库应用开发案例2

本章重点讲述以下内容:
4.4 应用JDBC调用存储过程
4.5 数据源与连接池技术
4.6 数据库程序开发案例

第四章 数据库应用开发案例2,案例示例

1、使用预处理语句实现学生信息查询功能

数据库程序开发-学生信息查询

建立数据库连接(Connection)的目的是与数据库进行通信,执行SQL语句,需要创建Statement实例。

分为以下3种类型:

  • Statement:只能用来执行静态的SQL语句;
  • PreparedStatement:增加了执行动态SQL语句的功能;
  • CallableStatement:增加了执行数据库存储过程的功能。

其中,Statement是最基础的,PreparedStatement继承了Statement,并做了相应的扩展,而CallableStatement继承了PreparedStatement,又做了相应的扩展,从而保证在基本功能的基础上,各自又增加了一些独特的功能。

PreparedStatement

PreparedStatement类可以将SQL语句传给数据库做预编译处理,即在执行的SQL语句中包含一个或多个IN参数,可以通过设置IN参数值多次执行SQL语句,不必重新给出SQL 语句,这样可以大大提高执行SQL语句的速度。

所谓IN参数就是指那些在SQL语句创立时尚未指定值的参数,在SQL语句中IN参数用“?”号代替。例如:

PreparedStatement pstmt=conn.preparedStatement("SELECT * FROM student  WHERE年龄>=? AND 性别=? ");

学生信息查询案例代码:

<% try {  Class.forName("com.mysql.jdbc.Driver"); 
String url = "jdbc:mysql://localhost:3306/employeeDb"; 
String username = "root";// 数据库用户名
String password = "root";// 数据库密码
Connection conn = DriverManager.getConnection(url,username,password); 
String sql = "select * from employee where age>? and salary>?";
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setInt(1,18);
pstmt.setFloat(2,3000);
ResultSet  rs= pstmt.executeQuery();
out.print("<table border=2>");
          out.print("<tr>");
            out.print("<th width=100>员工号</th>");
            out.print("<th width=100>姓名</th>");
            out.print("<th width=50>年龄</th>");
            out.print("<th width=50>性别</th>");
            out.print("<th width=50>薪水</th>");
            out.print("<th width=50>部门</th>");
         out.print("</tr>");
while(rs.next())
       {     out.print("<tr>");
             out.print("<td >"+rs.getInt(1)+"</td>"); 
             out.print("<td >"+rs.getString(2)+"</td>");
             out.print("<td >"+rs.getString("age")+"</td>"); 
             out.print("<td >"+rs.getString("sex")+"</td>"); 
             out.print("<td >"+rs.getFloat("salary")+"</td>");
             out.print("<td >"+rs.getString("department")+"</td>"); 
          out.print("</tr>") ; 
        }
out.print("</table>");
rs.close();
pstmt.close();
conn.close();
} catch (Exception e) { 
    out.print(e.getMessage());
  }
%>

2、调用存储过程显示图书信息

MySQL存储过程的创建  格式 : CREATE PROCEDURE 过程名 ([过程参数[,…]])  [特性 …] 过程体

例子:

mysql>use db_book;    
mysql> DELIMITER //
mysql> create procedure  findAllBook()
  begin
   		select * from tb_book order by id; 
  end
  //
mysql> DELIMITER ;

(1)DELIMITER是分割符的意思,因为MySQL默认以“;”为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符mysql> DELIMITER //  ,这样MySQL才会将”;”当做存储过程中的代码,不会执行这些代码,用完了之后要把分隔符还原mysql> DELIMITER ; 。

(2 )过程体的开始与结束使用BEGIN与END进行标识。 

本章节内容已隐藏,发表评论后即可查看!

125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/1146.html

(2)
江山如画的头像江山如画管理团队
第四章 数据库应用开发案例1
上一篇 2018年2月7日 上午10:04
消除img图片与div下边界之间空白的三种方法
下一篇 2018年2月7日 下午8:27

99%的人还看了以下文章

  • 程序设计基础(C语言)—教学设计、教案

    教学设计——程序设计基础 教学基本信息 课程名称 程序设计基础 性质 专业基础课 学分 3 学时 48 题目 数据类型 专业年级 软件工程专业一年级 教材 书名:C程序设计(第五版) 出版社:清华大学出版社    出版日期: 2017年8月 教学背景分析 一、学习内容分析: 本节课要介绍的知识点——数据类型比较简单,但都是概念。对于这些陌生的、枯燥的纯概念性…

    2020年4月10日
    14.9K0
  • 详解如何在myeclipse中运行JSP,Run As none applicable(图)

    在MyEclipse中打开JAVA Project时想运行单个JAVA文件,如Hello.java文件,可以在Hello.java右键Run As 后面出现java Application,点击即可运行。 在myEclipse中打开web project,想运行单个JSP文件或项目,在jsp文件上右键Run As 没有”run on server…

    2020年2月23日
    27.0K0
  • 网络编程 ASP.NET(C#)学习笔记三:数据类型-引用类型

    C#中数据类型主要分为两大类:值类型和引用类型。本节课主要讲解引用类型的分类及C#内置引用类型object 和string。 引用类型包括:类(class、object、string)、接口(interface)、数组(array)、代理(delegate)类包括:用户自定义的类、object基类、字符串类,其中object 、string为C#内置引用类型…

    2018年1月30日
    9.4K0
  • 全!最详细的mysql新手安装教程

    全!最详细的mysql新手安装教程全!最详细的mysql新手安装教程全!最详细的mysql新手安装教程全!最详细的mysql新手安装教程

    数据库排名:Oracle,mysql和 Microsoft SQL Server 仍占据前三名。 Mysql是什么? mysql是一个关系型数据库软件,由瑞典MySQL AB公司开发,目前属于Oracle公司。 为什么使用mysql? 1)mysql是开源的,所以你不需要支付额外的费用就能使用。 2)mysql支持大型的数据库。可以处理拥有上千万条记录的大型…

    2023年1月28日 编程开发
    8.1K0
  • 精!如何在IDEA中导入myeclipse项目、配置并运行(实例演示)

    精!如何在IDEA中导入myeclipse项目、配置并运行(实例演示)精!如何在IDEA中导入myeclipse项目、配置并运行(实例演示)精!如何在IDEA中导入myeclipse项目、配置并运行(实例演示)精!如何在IDEA中导入myeclipse项目、配置并运行(实例演示)

    125建站网站长原来开发的myeclipse项目直接在IDEA打开发现会有很多问题,根据解决过程,写出此文章供大家参考! 1.首先打开IDEA工具,选择导入项目,然后在弹出的窗口中选择要打开的myeclipse文件,然后点击确定。如图所示 2.选择Eclipse,然后一直下一步 3.正常我们SDK这里都配置好了,直接选择就好,然后完成项目的导入 4.导入的完…

    2023年2月3日 编程开发
    8.7K0
  • 基于jspSmartUpload的Jsp文件上传实例

    SmartUpload是一个免费的文件上传下载组件1、使用简单:仅三五行代码就可以搞定文件的上传2、方便存取:利用组件提供的对象,可以获得全部上传文件的信息(包括文件名,大小,类型,扩展名,文件数据等)。3、能对上传的文件在大小、类型等方面做出限制。如此可以滤掉不符合要求的文件。 下载jsmartcom_zh_CN.jar文件:http://www.125j…

    2018年12月11日
    3.2K0

发表回复

登录后才能评论