JDBC操作数据库之查询数据
以数据库中查找图书信息,并将信息显示在jsp页面当中为例,下面贴上代码片段:
(1)在index.jsp页面代码body中只要添加如下一段代码:
<a href="FindServlet">查看所有图书</a>
(2)FindServlet.java类代码
package com.lyq.bean;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class FindServlet extends HttpServlet {
private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
// 加载数据库驱动,注册到驱动管理器
Class.forName("com.mysql.jdbc.Driver");
// 数据库连接字符串
String url = "jdbc:mysql://localhost:3306/db_database10";
// 数据库用户名
String username = "root";
// 数据库密码
String password = "111";
// 创建Connection连接
Connection conn = DriverManager.getConnection(url,username,password);
// 获取Statement
Statement stmt = conn.createStatement();
// 添加图书信息的SQL语句
String sql = "select * from tb_books";
// 执行查询
ResultSet rs = stmt.executeQuery(sql);
// 实例化List对象
List<Book> list = new ArrayList<Book>();
// 判断光标向后移动,并判断是否有效
while(rs.next()){
// 实例化Book对象
Book book = new Book();
// 对id属性赋值
book.setId(rs.getInt("id"));
// 对name属性赋值
book.setName(rs.getString("name"));
// 对price属性赋值
book.setPrice(rs.getDouble("price"));
// 对bookCount属性赋值
book.setBookCount(rs.getInt("bookCount"));
// 对author属性赋值
book.setAuthor(rs.getString("author"));
// 将图书对象添加到集合中
list.add(book);
}
// 将图书集合放置到request之中
request.setAttribute("list", list);
rs.close(); // 关闭ResultSet
stmt.close(); // 关闭Statement
conn.close(); // 关闭Connection
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
// 请求转发到book_list.jsp request.getRequestDispatcher("book_list.jsp").forward(request, response);
}
}
(3)图书信息展示页面book_list.jsp代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.List" %>
<%@ page import="com.java.Book" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>查看所有图书</title>
<style type="text/css">
h2{
margin:0px;
}
div,td{
font-size:12px;
}
</style>
</head>
<body>
<div style="text-align:center;">
<table width="45px" border="1px" height="180px">
<tr bgcolor="white">
<td colspan="4">
<h2>所有图书信息</h2>
</td>
</tr>
<tr bgcolor="#e1ffc1">
<td><b>图书名称</b></td>
<td><b>图书价格</b></td>
<td><b>图书数量</b></td>
<td><b>图书作者</b></td>
</tr>
<%
//获取图书信息集合
List<Book> list = (List<Book>)request.getAttribute("list");
//判断集合是否有效
if(list == null || list.size() < 1){
out.print("没有数据");
}else{
//遍历图书集合中的数据
for(Book book:list){
%>
<tr bgcolor="white">
<td><%= book.getName() %></td>
<td><%= book.getPrice() %></td>
<td><%= book.getBookcout() %></td>
<td><%= book.getAuthor() %></td>
</tr>
<%
}
}
%>
</table>
</div>
</body>
</html>
(4)最后web.xml中Servlet的配置信息为:
<servlet>
<servlet-name>FindServlet</servlet-name>
<servlet-class>com.java.FindServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FindServlet</servlet-name>
<url-pattern>/FindServlet</url-pattern>
</servlet-mapping>
JDBC操作数据库之查询数据的更多相关文章
- 使用JDBC从数据库中查询数据的方法
* ResultSet 结果集:封装了使用JDBC 进行查询的结果 * 1. 调用Statement 对象的 executeQuery(sql) 方法可以得到结果集 * 2. ResultSet 返回 ...
- JDBC操作数据库之修改数据
使用JDBC修改数据库中的数据,起操作方法是和添加数据差不多的,只不过在修改数据的时候还要用到UPDATE语句来实现的,例如:把图书信息id为1的图书数量改为100,其sql语句是:update bo ...
- 使用JDBC从数据库中查询数据
* ResultSet 结果集:封装了使用JDBC 进行查询的结果 * 1. 调用Statement 对象的 executeQuery(sql) 方法可以得到结果集 * 2. ResultSet 返回 ...
- JDBC操作数据库之删除数据
删除数据使用的SQL语句为delete语句,如果删除图书id为1的图书信息,其SQL语句为: delete from book where id=1 在实际开发中删除数据通常使用PreparedSta ...
- 用于JDBC操作数据库的公共类
/* * @(#)CommonSql.java 2011-9-5 * * Copyright 2011 Bianjing,All rights reserved. */ import java.sql ...
- JDBC操作数据库的学习(2)
在上一篇博客<JDBC操作数据库的学习(1)>中通过对例1,我们已经学习了一个Java应用如何在程序中通过JDBC操作数据库的步骤流程,当然我们也说过这样的例子是无法在实际开发中使用的,本 ...
- JDBC操作数据库的学习(1)
单单对数据库的操作,比如说MySQL,我们可以在命令行窗口中执行,但是一般是应用程序要操作数据库,因此我们应该在程序中的代码上体现对数据库的操作,那么使用程序应用如何操作数据库呢?那就要使用到数据库的 ...
- JDBC操作数据库的三种方式比较
JDBC(java Database Connectivity)java数据库连接,是一种用于执行上sql语句的javaAPI,可以为多种关系型数据库提供统一访问接口.我们项目中经常用到的MySQL. ...
- Spark Streaming通过JDBC操作数据库
本文记录了学习使用Spark Streaming通过JDBC操作数据库的过程,源数据从Kafka中读取. Kafka从0.10版本提供了一种新的消费者API,和0.8不同,因此Spark Stream ...
随机推荐
- c语言 内存管理
动态内存是由程序员手动分配,不再使用时,一定记得释放内存. 静态内存是程序开始运行时由编译器分配的内存,它的分配是程序开始编译时完成的,不占用cpu资源.程序中的各种变量在编译源程序时就已经分配了内存 ...
- RHCE认证过程
RHCE认证,即红帽认证工程师(Red Hat Certified Engineer)的简称,认证内容包括DNS.NFS.Samba.Sendmail.Postfix.Apache和关键安全功能的详细 ...
- Windows常用的一些DOS命令整理
Windows常用的一些DOS命令整理.. MS DOS 命令大全 ---清空Dos屏幕使用命令:cls -- Dos切换当前目录到D盘:cd d: 一.基础命令 1 dir 无参数:查看当前所在目录 ...
- 初入angular4——实际项目搭建总结
前言 接到一个pc端后台项目,还会加入两个安卓同事一起学习和做这个项目,需要带一下他们. 既ng1之后,我就没怎么有过其它后台框架的实际项目经验了,期间用的移动端框架也并非vue.angular系列. ...
- v-cloak 实现vue实例未编译完前不显示
前言: 由于网速原因,(ps:之前同事无意间在网速很差的情况下测出的)在使用vue开发时,会由于vue实例还没编译成功的时候数据绑定的"Mustache"标签会闪现一下,造成不好的 ...
- php 数据访问练习:租房查询页面
<html> <head> <title></title> <meta charset="UTF-8"/> <li ...
- django 5 form1
---------------------Form表单验证(用户请求验证+生成HTML标签) 示例:用户管理 a. 添加用户页面 - 显示HTML标签 - 提交:数据验证 - 成功之后保存 - 错误显 ...
- 第4阶段——制作根文件系统之分析init进程(2)
本节目标: (1) 了解busybox(init进程和命令都放在busybox中) (2) 创建SI工程,分析busybox源码来知道init进程做了哪些事情 (3) 分析busybox中init进 ...
- WPF-TreeView获取文件夹目录、DataGrid获取目录下文件信息
开发一个WPF桌面应用程序.刚接触WPF编程以及C#语言,这里把一些关键的问题记录下来. 下面是实现将路径的文件夹信息绑定到TreeView及DataGrid上显示. 关键问题是C#数据绑定方式及IE ...
- 字符编码笔记:ASCII,Unicode和UT…
字符编码笔记:ASCII,Unicode和UTF-8 今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料. 结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才 ...