本文将给出一个最简单的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驱动包:

http://www.mysql.com/downloads/

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获取数据库数据展示的更多相关文章

  1. java获取数据库数据表的元数据

    Connction conn; DatabaseMetaData dmd=conn.getMetaData();//获取数据库元数据 PreparedStatment ps; ps.getParame ...

  2. 【java 获取数据库信息】获取MySQL或其他数据库的详细信息

    1.首先是 通过数据库获取数据表的详细列信息 package com.sxd.mysqlInfo.test; import java.sql.Connection; import java.sql.D ...

  3. jmeter 性能测试 JDBC Request (查询数据库获取数据库数据) 的使用

    JDBC Request 这个Sampler可以向数据库发送一个jdbc请求(sql语句),并获取返回的数据库数据进行操作.它经常需要和JDBC Connection Configuration配置原 ...

  4. jmeter JDBC Request (查询数据库获取数据库数据) 的使用

    JDBC Request 这个Sampler可以向数据库发送一个jdbc请求(sql语句),并获取返回的数据库数据进行操作.它经常需要和JDBC Connection Configuration配置原 ...

  5. 转jmeter 性能测试 JDBC Request (查询数据库获取数据库数据) 的使用

    JDBC Request 这个Sampler可以向数据库发送一个jdbc请求(sql语句),并获取返回的数据库数据进行操作.它经常需要和JDBC Connection Configuration配置原 ...

  6. 38)PHP,获取数据库数据并在html中显示(晋级5)

    还有一个加了单例模式的,在第52个. 首先是我的文件关系: 我的主php文件是index.php,我的配置文件php是BBB.php  我的数据库操作文件是  b.php    我的html文件是lo ...

  7. 37)PHP,获取数据库数据并在html中显示(晋级4)

    我的php文件和html文件的位置关系: 然后我的主php文件是b.php,我的那个配置文件是BBB.php,我的html文件是login.html 然后我的b.php代码展示: <?php c ...

  8. 36)PHP,获取数据库数据并在html中显示(晋级3)

    首先展示我的html代码和php文件的位置关系: 然后我的php文件: <?php class db { public $host ;//= "localhost";//定义 ...

  9. [Java] Java 获取数据库所有表基本信息和表中的所有列基本信息代码

    废话不多说.上代码 import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import ...

随机推荐

  1. webdriver实用指南迁移至gitbbok并改名为selenium webdriver从入门到提高

    背景 几年前我写了一本关于selenium webdriver的小册子,主要讲了一些selenium在进行测试过程中会遇到的场景以及解决方案,陆陆续续在github上收到了100+的star,在这里我 ...

  2. 【转】ASP.NET WEB API系列教程

    from: 西瓜小强 http://www.cnblogs.com/risk/category/406988.html ASP.NET Web API教程(六) 安全与身份认证 摘要: 在实际的项目应 ...

  3. UML 六种关系

    .继承, 男人 和 人 的关系2.实现, 孕妇 和 生宝宝 的关系3.依赖, 人 和 大米.水4.关联, 男人 和 工作5.聚合, 弱整体和部分, 轮子和车6.组合, 强整体和部分, 眼睛和人 参考: ...

  4. Hibernate缓存原理与策略 Hibernate缓存原理:

    Hibernate缓存原理: 对于Hibernate这类ORM而言,缓存显的尤为重要,它是持久层性能提升的关键.简单来讲Hibernate就是对JDBC进行封装,以实现内部状态的管理,OR关系的映射等 ...

  5. html5开发之viewport使用

    随着高端手机(Andriod,Iphone,Ipod,WinPhone等)的盛行,移动互联应用开发也越来越受到人们的重视,用html5开发移动应用是最好的选择.然而,每一款手机有不同的分辨率,不同屏幕 ...

  6. SQL 存储过程入门(事务)(四)

    SQL 存储过程入门(事务)(四)   本篇我们来讲一下事务处理技术. 为什么要使用事务呢,事务有什么用呢,举个例子. 假设我们现在有个业务,当做成功某件事情的时候要向2张表中插入数据,A表,B表,我 ...

  7. saiku 展示优化第二步(要诀和技巧)

    经历了上几篇博客的分享,可以无密码登录 : http://www.cnblogs.com/liqiu/p/5246015.html 随着使用的深入,公司需要将现有的报表平台与saiku整合,其中最便捷 ...

  8. [转帖]HOWTO rename column name in Sqlite3 database

    原文在此 Say you have a table and need to rename "colb" to "col_b": First you rename ...

  9. AX3空Invoice明细问题

    用户反映出现invoice无法打印明细问题,看截图 考虑再三,去查看invoice ID,居然出现类似ABABAB\的字符,就是最后一个\有问题, 修改VendInvoiceJour,VendInvo ...

  10. ux.plup.File plupload 集成 ux.plup.FileLis 批量上传预览

    //plupload 集成 Ext.define('ux.plup.File', { extend: 'Ext.form.field.Text', xtype: 'plupFile', alias: ...