JSP访问数据库(网上书店项目---创建数据库和JDBC连接数据库测试)

目录

1. 理论

JSP是动态网页设计技术,动态网页离不开数据库的支持。

JSP支持各种数据库应用:Mysql、Oracle、Sql Server、DB2、Access...

在数据库中创建表的方法:①新建表 ②运行sql脚本 ③从excel导入

我们使用JDBC(Java DataBase Connectivity)来访问数据库

JDBC是Java核心类库的组成部分

JSP访问MySQL数据库,需要将JDBC驱动jar包,并放入项目的\WEB-INF\lib\文件夹中

JDBC常用接口、类介绍

Driver接口:每种数据库的驱动程序都提供一个实现该接口的类,应用程序必须首先加载它
Class.forName("com.mysql.jdbc.Driver");    //加载JDBC驱动器,不同数据库的JDBC驱动器不一样
DriverManager类:管理与特定数据库的连接
Connection接口类:Connection接口类对象是应用程序连接数据库的连接对象
该对象由DriverManager类的getConnection()方法提供
该对象主要作用是调用createStatement()来创建Statement语句对象
Statement接口:将sql语句发送到数据库中,并获取sql语句的结果
ResultSet接口:用于获取Statement语句对象执行sql语句返回的结果

JDBC访问数据库的步骤

①注册加载一个数据库驱动程序
②创建Connection
③创建语句对象Statement
④语句对象Statement执行sql语句
⑤处理执行sql后得到的数据
⑥关闭Connection连接等资源 

 

2.实践---网上书店项目初步

数据库设计

用户表(userinfo)
列名数据类型备注
userIdint(11)用户ID
loginnamevarchar(20)用户名
passswordvarchar(10)密码

图书信息表(titles)
列名数据类型备注
isbnvarchar(20)书号
titlevarchar(100)书名
editionNumberint(11)版本号
copyrightvarchar(4)版权号
publisherIDint(11)出版社ID
imageFilevarchar(100)封面图片文件名
pricedouble图书单价
summaryvarchar(200)

内容简介    

出版社表(publishers)
列名数据类型备注
publisherIdint(11)出版社ID
publisherNamevarchar(30)出版社名称

订单记录表(bookorder)
列名数据类型备注
orderIdint(11)订单ID
userNamevarchar(20)用户名
zipcodevarchar(8)邮编
phonevarchar(20)联系电话
creditcardvarchar(20)信用卡号
totaldouble合计金额

 

作者信息表(authors)
列名数据类型备注
authorIdint(11)作者ID
firstNamevarchar(20)作者姓
lastNamevarchar(30)作者名

信用卡账户信息表(account)
列名数据类型备注
idint(11)ID
balancedouble余额
creditcardvarchar(10)信用卡号

我这里用的是导入sql脚本的方式来创建数据库(sql脚本可去我的项目根目录下的dataBase文件夹下去找)

利用JDBC访问图书表

①创建bookstore项目
②导入jdbc驱动jar包,并放入项目的\WEB-INF\lib\文件夹中
③创建listTitles.jsp(需要import sql.*)
④将bookstore项目发布到tomcat上,启动tomcat

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决办法(如果确实已经导入了mysql-connector-java-8.0.26.jar包):关闭tomcat再重启试试

WebRoot/test/listTitles.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.sql.*" %>

<!DOCTYPE HTML>
<html>
  <body>
    <table>
    <tr><td>ISBN</td><td>书名</td><td>版本</td><td>出版时间</td><td>价格</td></tr>
    <%
    Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost:3306/books?useUnicode=true&characterEncoding=UTF-8";
    Connection dbCon = DriverManager.getConnection(url, "root", "123456");
    Statement stmt = dbCon.createStatement();
    ResultSet rs = stmt.executeQuery("select * from titles");
    while(rs.next()) {
    %>
    <tr bgcolor="cyan">
    	<td><%=rs.getString(1)%></td>
    	<td><%=rs.getString(2)%></td>
    	<td><%=rs.getInt("editionNumber")%></td>
    	<td><%=rs.getInt(4)%></td>
    	<td><%=rs.getDouble("price")%></td>
    </tr>
    <%}
     	rs.close();
     	stmt.close();
     	dbCon.close();
    %>
    </table>
  </body>
</html>

效果(确保MySQL已经启动) 

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漂流の少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值