实验性质:验证性 实验学时: 1学时 实验地点:

一 、实验目的与要求

1、 掌握在JSP中使用数据库的方法。

2、 掌握JSP对数据库的基本操作:增、删、改、查。

二、 实验内容

1、JSP访问数据库的准备工作

(1)创建数据库和数据表

启动Navicat for MySQL,建立和数据库服务器的连接,打开连接,创建一个名为"xsgl"的数据库,在其中建立名为"userinfo"的表,表结构如下图所示:

保存表,输入表名,确定。双击表名,输入表中的记录,如下图所示:

2、在JSP中实现对数据库的增、删、改、查

(1)编写一个JSP页面,显示userinfo表中的所有记录,如下图所示:

请写出相应的代码:

<%@ page import="java.sql.*" %><%--
Created by IntelliJ IDEA.
User: hasee
Date: 2018/6/21
Time: 19:21
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>SQL</title>
</head>
<body>
<%
//加载驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
out.println("加载驱动失败"); } String url = "jdbc:mysql://localhost:3306/xxgl";
String user = "root"; String password = "不让你看"; try {
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
// String sql_update = "update userinfo set weight=78 where name='李振';";
// String sql_insert = "INSERT INTO userinfo (id,name,birthday,qq,height,weight)" +
// "VALUES" +
// "(5,'ZNN','19961121','20145468',1.78,50);";
// String sql_update = "update userinfo set weight=78 where name='李振';";
// String sql_insert = "INSERT INTO userinfo ()" +
// "VALUES" +
// "(5,'ZNN','123654','19961121','20145468',1.78,50,'1');";
// String sql_delete = "DELETE FROM userinfo where id=5;";
String sql = "SELECT * FROM userinfo WHERE height>1.66;";
// stmt.executeUpdate(sql_update);
// stmt.executeUpdate(sql_insert);
// stmt.executeUpdate(sql_delete);
ResultSet rs = stmt.executeQuery(sql); out.print("<table border=1><tr>");
out.println("<tr><th width=100>编号</th>" +
"<th width=100>姓名</th>" +
"<th width=100>出生日期</th>" +
"<th width=100>qq</th>" +
"<th width=100>身高</th>" +
"<th width=100>体重</th></tr>");
while (rs.next()) {
out.print("<tr>");
out.println(
"<td width=100>" + rs.getString("id")
+ "<td width=100>" + rs.getString("name") + "</td>"
+ "<td width=100>" + rs.getString("birthday") + "</td>"
+ "<td width=100>" + rs.getString("qq") + "</td>"
+ "<td width=100>" + rs.getString("height") + "</td>"
+ "<td width=100>" + rs.getString("weight") + "</td>"
); out.print("</tr>");
}
out.print("</table>");
rs.close();
conn.close();
stmt.close(); } catch (SQLException e) {
e.printStackTrace();
out.println("MYsql连接失败");
} %> </body>
</html>

三、实验内容中遇到的问题、解决方法和体会

实验九 在JSP中使用数据库的更多相关文章

  1. JSP中访问数据库

    在JSP中访问数据库使用的是JSTL标签,本文不按照http://wiki.jikexueyuan.com/project/jsp/database-access.html此方法进行实践,而是采用之前 ...

  2. 应用DriverManager类创建sqlserver数据库连接实例 JSP中使用数据库

    JSP中使用数据库 1.JDBC介绍 java数据库连接(java Database Connectivity ,JDBC)是一种用于执行SQL语句的JavaAPI ,由一组使用java编程语言编写的 ...

  3. 如何在jsp中显示数据库的内容

    用Eclipse tomcat新建一个JSP页面(一)介绍了如何创建一个web程序和第一个jsp页面,以及Eclipse需要的一些必要配置.今天,我们重点说一下如何从数据库中查询数据,并且在JSP页面 ...

  4. JSP中的数据库操作,MySQL基础操作(一)

    一.JDBC JDBC(java data base concectivity),是一种用于执行SQL语句的java API,可以为多种关系库提供统一访问. 通常使用JDBC完成以下操作: 1)同数据 ...

  5. JSP 中 pageEncoding 和 charset 区别以及中文乱码解决方案

    一.JSP 中 pageEndcodeing 和 charset 的作用 <%@ page contentType="text/html;charset=GB2312"%&g ...

  6. JSP中pageEncoding和charset区别,中文乱码解决方案(转载)

    转载自:JSP中pageEncoding和charset区别,中文乱码解决方案 JSP指令标签中<%@ page contentType="text/html;charset=GB23 ...

  7. jsp中pageEncoding、charset=UTF -8

    jsp中pageEncoding.charset=UTF -8" 在JSP/Servlet  中主要有以下几个地方可以设置编码,pageEncoding="UTF-8". ...

  8. JSP中的九大隐式对象及四个作用域

    在这篇博文中,我们将讨论和学习JSP中的隐式对象及四个作用域. 一.九大隐式对象 这些对象是JSP容器为每个页面中的开发人员提供的Java对象,开发人员可以直接调用它们而不用显式地声明它们再调用. J ...

  9. jsp中的四个作用域,九个内置对象分别是什么?

    九大内置对象: 内置对象(又叫隐含对象),就是在jsp中,不需要创建(由服务器<容器>来创建),可以直接使用的对象. 对象 含义 类 作用域 request 请求对象 类型 javax.s ...

随机推荐

  1. Webpack+Typescript 简易配置

    教程:https://www.cnblogs.com/yasepix/p/9294499.html http://developer.egret.com/cn/github/egret-docs/ex ...

  2. (通用版)salesforce中soql及sosl的伪‘Like’模糊检索

    salesforce里有soql.sosl两种查询语法,soql针对模糊搜索也有‘like’关键字,然而只能针对其自带字段如:Name.Id:对于自定义添加的字段如:Message__c.Note__ ...

  3. ECS上配置FTP Filezilla

    又来搞华为ECS 第一,服务器安装服务端 第二,设置被动模式,把服务器的公网IP填好 第三,生成一个服务器证书,客户端连接时接受 第四,设置自定义的被动连接端口比如 9000-9050 第五,去ECS ...

  4. flask 单元测试

    程序开发过程中,代码是为了完成需求,当代码编译通过后,能不能保证功能的正常实现,需要我们编写测试代码,模拟程序运行过程,检验功能是否符合预期. 单元测试主要面向一些功能单一的模块进行. 单元测试,实际 ...

  5. 二十一、当锚点遇到fixed(margin和padding)

    当锚点点击跳转的时候,如果上方有fixed,锚点跳转会默认跳转到top为0的地方,有一部分就被遮挡了 解决方法:(像素值随便给的) 给锚点跳转到的具体内容加padding-top:-50px:marg ...

  6. POJ - 3264 线段树模板题 询问区间最大最小值

    这是线段树的一个模板题,给出一串数字,然后询问区间的最大最小值. 这个其实很好办,只需把线段树的节点给出两个权值,一个是区间的最小值,一个是区间的最大值,初始化为负无穷和正无穷,然后通过不断地输入节点 ...

  7. Python Revisited Day 01

    逻辑操作符 身份操作符 is a = ['AAA', 3, None] b = ['AAA', 3, None] a is b #False b = a a is b #True 身份比较速度快,原因 ...

  8. Vladik and Favorite Game CodeForces - 811D (思维+BFS+模拟+交互题)

    D. Vladik and Favorite Game time limit per test 2 seconds memory limit per test 256 megabytes input ...

  9. 亲测可以永久破解2018版本的pycharm

    pycharm是很强大的开发工具,但是每次注册着实让人头疼.网络上很多注册码.注册服务器等等.但都只是一年或者不能用:为次有如下解决方案.亲测有效!!! 如果想让pycharm永久被激活,比如截止日到 ...

  10. iOS开发造轮子 | 通用占位图

    https://www.jianshu.com/p/beca3ac24031 实际运用场景: 没网时的提示view,tableView或collectionView没内容时的展示view,以及其它特殊 ...