程序员社区

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连接等资源 

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

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

数据库设计

用户表(userinfo)
列名 数据类型 备注
userId int(11) 用户ID
loginname varchar(20) 用户名
passsword varchar(10) 密码

图书信息表(titles)
列名 数据类型 备注
isbn varchar(20) 书号
title varchar(100) 书名
editionNumber int(11) 版本号
copyright varchar(4) 版权号
publisherID int(11) 出版社ID
imageFile varchar(100) 封面图片文件名
price double 图书单价
summary varchar(200)

内容简介    

出版社表(publishers)
列名 数据类型 备注
publisherId int(11) 出版社ID
publisherName varchar(30) 出版社名称

订单记录表(bookorder)
列名 数据类型 备注
orderId int(11) 订单ID
userName varchar(20) 用户名
zipcode varchar(8) 邮编
phone varchar(20) 联系电话
creditcard varchar(20) 信用卡号
total double 合计金额

 

作者信息表(authors)
列名 数据类型 备注
authorId int(11) 作者ID
firstName varchar(20) 作者姓
lastName varchar(30) 作者名

信用卡账户信息表(account)
列名 数据类型 备注
id int(11) ID
balance double 余额
creditcard varchar(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已经启动) 

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

赞(0) 打赏
未经允许不得转载:IDEA激活码 » JSP访问数据库(网上书店项目---创建数据库和JDBC连接数据库测试)

一个分享Java & Python知识的社区