
打开《Java+EE应用开发实践教程》_读懂新的设计思路_2.1.1 实验五 实验步骤
【摘要】 本书摘自《Java+EE应用开发实践教程》一书中第2章,第1节,由涂祥著。
实验五 JDBC 与 Web 数据库编程-实验步骤
三、实验步骤
1.下载并安装Mysql。 在官网下载MySQL 的 Community 版本并安装。如图5-1所示。
需要说明的是,MySQL 有许多版本,其中MySQL Community(社区)版本是开源 的,也就是免费的版本,Oracle对这个版本的MySQL 不提供技术服务。本课程作为学 习Java Web数据库编程技术,使用该版本的MySQL。
2.通过Mysql 新建数据库 edu db,以及新建数据表 edu stu,其表结构见表5-1。
(1)进入命令提示符窗口,输入命令 mysql—u root-p回车,然后输入密码,回车, 进入mysql命令行模式。首先建立 edu db数据库,输入命令。
CREATE DATABASE edu db;
(2)输入如下所示命令,然后回车。建立表edu stu的表结构,并设置 stuNum 字段 为主键。
mysql>use edu db;
mysql>CREATE TABLE edu stu(
一 >stuNum VARCHAR(9) NOT NULL,
一 >stuName VARCHAR(20)NOT NULL,
一 >stuSex VARVHAR(1) NOT NULL,
一 >stuAge int(2)NOT NULL,
一 >stuMajor VARCHAR(20)NOT NULL,
一 >PRIMARY KEY(stuNum)
一 >)DEFAULT CHARSET=utf8;
(3)给edu stu表录入记录。输入类似如下所示命令,然后回车。依次将表5-2所 示的记录数据插入到 edu stu表中。
mysql> INSERT INTO edu stu(
一> stuNum,stuName,stuSex,stuAge,stuMajor)
一 > VALUES(“031640301”,"李强","男",19,"信息安全");
3.新建一个Web 工程,使用JSP+JDBC 的方式实现数据库访问。
(1)在Eclipse中,新建一个Web 工程 p05 1,给该工程添加 My SQL驱动包,在网
上搜索并下载 My SQL 的驱动包,并复制到本工程的 WEB-INF 文件夹下的 lib 目
录中。
(2)在工程p05 1中新增资源文件 edu db.properties,其代码如下所示。 driver=com.mysql.jdbc. Driver
url=jdbc:mysql://localhost:3306/edu db
username=root
password=123456
说明:本书中的数据库环境设置如上,读者实验时请根据自身具体实验环境设置 参数。
(3)在工程p05 1中新建一个JDBC 数据库连接类文件JDBCUtils.java,如图5 - 2 所示。
其部分代码如下所示。
//JDBCUtils. java
package cn.hbmy. p05 1;
* *
public class JDBCUtils {
private static String driver = null;
private static String url = null;
private static String username = null;
private static String password = null;
static {
try {// 读取 db.properties 文件中的数据库连接信息
InputStream in = JDBCUtils. class. getClassLoader(). getResourceAsStream ("edu db.properties");
Properties prop = new Properties();
prop. load(in);
driver = prop.getProperty("driver");// 获取数据库连接驱动
url= prop.getProperty("url");// 获取数据库连接URL 地址
username = prop. getProperty("username");// 获取数据库连接用户名 password = prop.getProperty("password");// 获取数据库连接密码
Class. forName(driver);// 加载数据库驱动
}catch(Exception e){
throw new ExceptionInInitializerError(e);
public static Connection getConnection()throws SQLException { return DriverManager.getConnection(url,username,password);
public static void release(Connection conn, Statement st, ResultSet rs){ if (rs!= null){
try {//关闭存储查询结果的 ResultSet 对象
rs.close();
}catch(Exception e){
e.printStackTrace();
rs = null;
if(st!= null){
try {//关闭负责执行 SQL 命令的 Statement对象
st.close();
}catch(Exception e){
e.printStackTrace();
if (conn!= null){
try {//关闭 Connection数据库连接对象
conn. close();
}catch(Exception e){
e.printStackTrace();
(3)在工程p05 1中新建cn.hbmy.p05 1 包,在包中新建Student类,该类的部分代 码如下所示。
//Student.java
····
package cn.hbmy. p05 1;
public class Student {
private String stuNum;
private String stuName;
private String stuSex;
private int stuAge;
private String stuMajor;
//省略 setter和 getter方法
····
(4)在工程中p05 1新建Servlet,用于处理显示所有记录。类名为QueryServlet,包 名为cn.hbmy.p05 1,类的部分代码如下所示。
//QueryServlet.java
· ·-**
@WebServlet("/QueryServlet")
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
ListStudent stu=null;
try{
con=JDBCUtils.getConnection();
stmt=con. createStatement();
rs=stmt,executeQuery("select * from edu stu");
while(rs.next()){
stu=new Student();
stu. setStuNum(rs.getString(1));
stu. setStuName(rs.getString(2));
stu. setStuSex(rs.getString(3));
stu. setStuAge(rs.getInt(4));
stu. setStuMajor(rs.getString(5));
dataList.add(stu);}
}catch(Exception e){
e.printStackTrace();;
}finally{
JDBCUtils. release(con, stmt,rs);
request.getSession().setAttribute("dataList",dataList);
response. sendRedirect("stu disAllRec.jsp");
(5)在工程p05 1中新建JSP 文件 stu disAllRec.jsp,其部分代码如下所示。
·····
${stu.stuNum}—${stu.stuName}--
${stu.stuSex}—${stu.stuAge}—${stu.stuMajor}