第四章 数据库应用开发案例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%的人还看了以下文章

  • myeclipse集成的tomcat在哪个目录下

    myeclipse集成了Tomcat服务器,本文介绍了myeclipse集成的tomcat在哪个目录下?查看myeclipse集成的tomcat在哪个目录下的方法

    2020年2月6日
    17.3K0
  • 如何修改从Maven中心仓库下载到本地的jar包的默认存储位置?

    如何修改从Maven中心仓库下载到本地的jar包的默认存储位置?如何修改从Maven中心仓库下载到本地的jar包的默认存储位置?如何修改从Maven中心仓库下载到本地的jar包的默认存储位置?如何修改从Maven中心仓库下载到本地的jar包的默认存储位置?

    为什么要修改从Maven中心仓库下载到本地的jar包的默认存储位置? 把jar包下载到本地的好处就是,当编译时,会优先从本地的jar包去找,如果本地存在,就直接拿来用,如果不存在,就从Maven的中心仓库去下载。 第一次执行”mvn compile”和”mvn clean”这两个命令时,Maven会去中央仓库下…

    2023年1月28日 编程开发
    1.8K0
  • 基于jspSmartUpload的Jsp文件上传实例

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

    2018年12月11日
    3.2K0
  • 填坑!安装opencv-python库后,没有CV2文件夹,找不到haarcascade分类器文件

    python内import cv2正常运行,但是根据以下方法在e:\python\python39\lib\site-packages下找不到CV2文件夹,也找不到data\haarcascades相关分类器文件。 OpenCV-python haarcascade各种分类器文件位置 使用 pip list 查看是否安装opencv-python E:\py…

    2020年12月8日
    14.0K0
  • java实现上位机与下位机串口通信实例(含java串口通信jar包下载及代码)

    java实现上位机与下位机串口通信实例(含java串口通信jar包下载及代码)java实现上位机与下位机串口通信实例(含java串口通信jar包下载及代码)java实现上位机与下位机串口通信实例(含java串口通信jar包下载及代码)java实现上位机与下位机串口通信实例(含java串口通信jar包下载及代码)

      串口通信在工程应用中很常见。 上位机与下位机 在上位机与下位机通讯过程中常通过有线的串口进行通信,在低速传输模式下串口通信得到广泛使用。 通常上位机指的是PC,下位机指的是单片机或者带微处理器的系统。下位机一般是将模拟信号经过AD采集将模拟量转换为数字量,下位机再经过数字信号处理以后将数字信号通过串口发送到上位机,相反上位机可以给下位机发送一些指令或者信…

    2023年1月7日 编程开发
    6.9K0
  • itbegin编程教学云课堂使用介绍

    进入https://www.itbegin.com/apps    点击右上角 登录 登录后,点击院校通–院校 点击进入个人中心 点击“web开发技术课堂”,进入相应课程 点击:我的预习,可以看到预习的知识点,时间要求。请同学们一定要在结束时间前完成任务! 点击查看,可以看到需要预习的知识点,预习以观察,查看效果为主。 如要求:观察各标签的使用及…

    2018年3月14日
    9.2K0

发表回复

登录后才能评论