【助教】Java获取数据库数据展示
本文将给出一个最简单的Java查询数据库中一张表的数据并将查询结果展示在页面的例子.
实际上,我们要解决以下两个问题:
- Java与数据库交互(以JDBC为例)
- 数据展示在前台页面(以Servlet+JSP为例)
数据结构:
学生表(student)
student_id : 学号(主键,字符,非空)
student_name:学生姓名(字符,非空)
student_age:学生年龄(整型,非空)
附:数据库脚本和初始化数据(MySQL为例):
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `student`
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`student_id` varchar(255) NOT NULL,
`student_name` varchar(255) NOT NULL,
`student_age` int(11) NOT NULL,
PRIMARY KEY (`student_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('1', 'zhangsan', '20');
INSERT INTO `student` VALUES ('2', 'lisi', '21');
INSERT INTO `student` VALUES ('3', 'wangwu', '19');
Java与数据库交互(以JDBC为例):
import java.sql.*;
public class Main {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/tt";
static final String USER = "root";
static final String PASS = "root";
public static void main(String[] args) throws Exception {
Connection conn = null;
Statement stmt = null;
//STEP 2: Register JDBC driver
Class.forName(JDBC_DRIVER);
//STEP 3: Open a connection
conn = DriverManager.getConnection(DB_URL,USER,PASS);
//STEP 4: Execute a query
stmt = conn.createStatement();
String sql;
sql = "SELECT student_id, student_name, student_age FROM student";
ResultSet rs = stmt.executeQuery(sql);
//STEP 5: Extract data from result set
while(null != rs && rs.next()){
String studentId = rs.getString("student_id");
String studentName = rs.getString("student_name");
int student_age = rs.getInt("student_age");
System.out.println("student_id: " + studentId);
System.out.println("student_name: " + studentName);
System.out.println("student_age: " + student_age);
System.out.println("-----------");
}
rs.close();
stmt.close();
conn.close();
}
}
需要注意:
1.运行这个程序需要下载MySQL驱动包:
2.这个程序肯定可以优化,利用之前学的封装,异常处理等知识优化一下这段代码。
3.试着实现对数据库的其他操作,比如增删改。
数据展示在前台页面(以Servlet+JSP为例):
输入页面input.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>
</head>
<body>
<form action="HandleServlet">
<input type="text" id="studentName" name="studentName"> <input
type="submit" value="submit">
</form>
</body>
</html>
新建Servlet:HandleServlet.java 配置其URL Mappings为:/HandleServlet
在其doGet方法里面写以下代码:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String studentName = request.getParameter("studentName");
System.out.println("已经传到后台:"+studentName);
RequestDispatcher dispatcher = request.getRequestDispatcher("/output.jsp");
request.setAttribute("studentName",studentName);// 传回前台
dispatcher .forward(request, response);
}
输出界面:output.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>
</head>
<body>
欢迎:<%=request.getAttribute("studentName")%>
</body>
</html>
将程序部署到Tomcat下,启动Tomcat,访问input,并输入学生名字,点击submit按钮,则:
1.HandleServlet接收到学生名字的输入并打印在控制台。
2.HandleServlet将学生名字传到output.jsp页面并展示出来。
需要注意:
1.代码肯定还可以优化,如:JSP页面可以采用JSTL标签来获取数据。
2.Eclipse配置tomcat参考:
http://jingyan.baidu.com/article/ca2d939dd90183eb6d31ce79.html
到目前为止,将这一步和之前的与数据库连接结合起来,就可以实现页面展示在前台界面的功能,部分只实现静态页面的团队可以参考一下将自己的静态页面变为动态从数据库取数据的方式。
若能将取数据的过程发布成服务(如:webservice),也会是一个不错的方向,有想法的童鞋,可以试试看。
【助教】Java获取数据库数据展示的更多相关文章
- java获取数据库数据表的元数据
Connction conn; DatabaseMetaData dmd=conn.getMetaData();//获取数据库元数据 PreparedStatment ps; ps.getParame ...
- 【java 获取数据库信息】获取MySQL或其他数据库的详细信息
1.首先是 通过数据库获取数据表的详细列信息 package com.sxd.mysqlInfo.test; import java.sql.Connection; import java.sql.D ...
- jmeter 性能测试 JDBC Request (查询数据库获取数据库数据) 的使用
JDBC Request 这个Sampler可以向数据库发送一个jdbc请求(sql语句),并获取返回的数据库数据进行操作.它经常需要和JDBC Connection Configuration配置原 ...
- jmeter JDBC Request (查询数据库获取数据库数据) 的使用
JDBC Request 这个Sampler可以向数据库发送一个jdbc请求(sql语句),并获取返回的数据库数据进行操作.它经常需要和JDBC Connection Configuration配置原 ...
- 转jmeter 性能测试 JDBC Request (查询数据库获取数据库数据) 的使用
JDBC Request 这个Sampler可以向数据库发送一个jdbc请求(sql语句),并获取返回的数据库数据进行操作.它经常需要和JDBC Connection Configuration配置原 ...
- 38)PHP,获取数据库数据并在html中显示(晋级5)
还有一个加了单例模式的,在第52个. 首先是我的文件关系: 我的主php文件是index.php,我的配置文件php是BBB.php 我的数据库操作文件是 b.php 我的html文件是lo ...
- 37)PHP,获取数据库数据并在html中显示(晋级4)
我的php文件和html文件的位置关系: 然后我的主php文件是b.php,我的那个配置文件是BBB.php,我的html文件是login.html 然后我的b.php代码展示: <?php c ...
- 36)PHP,获取数据库数据并在html中显示(晋级3)
首先展示我的html代码和php文件的位置关系: 然后我的php文件: <?php class db { public $host ;//= "localhost";//定义 ...
- [Java] Java 获取数据库所有表基本信息和表中的所有列基本信息代码
废话不多说.上代码 import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import ...
随机推荐
- 【Vegas原创】Mysql绿色版安装方法
所谓的绿色版,就是没有installer的MySQL,完全需要靠人工来操作,好处是,重装系统后,只要再做一次本次配置,即可使用. 具体操作方法: 1,设置系统环境变量, 在Path中添加 D:\mys ...
- nginx-upstream-keepalive;accept_mutex-proxy_http_version-1.1-proxy_set_header-connection
nginx+resin+redis+mysql的架构: 有外部模拟用户请求的大量攻击:它尝试请求了80就断开:看到的现象是在跑有nginx80的主机上TCP连接数少 : ESTABLISHED少: 在 ...
- iOS中生成并导入基于Swift编程语言的Framework
从iOS 8.0开始就引入了framework打包方式以及Swift编程语言.我们可以主要利用Swift编程语言将自己的代码打包成framework.不过当前Xcode 7.x在自动导入framewo ...
- 在Oracle Linux Server release 6.4下配置ocfs2文件系统
① 安装ocfs-tools-1.8 如果是使用RedHat Enterprise Linux 6.4,也可以安装ocfs-tools-1.8的,只是要插入Oracle Linux Server re ...
- Ehcache 使用
自从Ehcache 到了1.2+的版本,就支持分布式缓存了 Spring + Hibernate的结构 ,ehcache的对这几个框架的支持较好,就采用这个缓存方案 下面是配置文件: <ehca ...
- Run same command on all SQL Server databases without cursors
original: https://www.mssqltips.com/sqlservertip/1414/run-same-command-on-all-sql-server-databases-w ...
- iOS 自定义滑动切换TabBar
貌似经常会用到,自己整理收藏起来,方便日后查找备用. 效果如图: 由于制作gif,调整了属性,所以看起来的效果不好.如果用默认配置,生成的gif会很大. 制作gif: 1.使用QuickTimePla ...
- 【汇总】涉及iOS&iPhone开发相关文章汇总
此文章汇总本博客中有涉及iPhone开发的相关文章,不定时更新中... 1.NSUserDefaults快速存储数据: http://www.cnblogs.com/ios-wmm/archive/2 ...
- 【Android】如何快速构建Android Demo
[Android]如何快速构建Android Demo 简介 在 Android 学习的过程中,经常需要针对某些项目来写一些测试的例子,或者在做一些 demo 的时候,都需要先写 Activity 然 ...
- 算法导论第十八章 B树
一.高级数据结构 本章以后到第21章(并查集)隶属于高级数据结构的内容.前面还留了两章:贪心算法和摊还分析,打算后面再来补充.之前的章节讨论的支持动态数据集上的操作,如查找.插入.删除等都是基于简单的 ...