本项目是基于实现动态网站的添加内容更新的项目的最初步的铺垫
应用举例:比如自己写的博客网站,如果想往上面添加留言的话,就要实现向数据库中添加留言的留言板功能,本项目可以算是留言板的最初步模型。
JSP页面
只写了一个index.jsp
要导入一个java.util.*包,和自己写的类
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<%@ page import="sql.MessBoar"%>
<%@ page import="sql.operate"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
operate op=new operate();
ArrayList mbs = op.findmb();
session.setAttribute("mbs", mbs);
mbs = (ArrayList) session.getAttribute("mbs");
if(mbs!=null){
Iterator iter = mbs.iterator();
while(iter.hasNext()){
MessBoar mb = (MessBoar)iter.next();
%>
<table>
<tr>
<td><%= mb.getname()%></td>
</tr>
</table>
<%
}
}
else{
%>
<p>啊这<p>
<%
}
%>
</body>
</html>
类
首先是加载数据库驱动和连接数据的DBconn类
我连接的数据库是Mysql,原因是Mysql的数据库驱动包比较容易获取
简单介绍一下获取方法:
下载地址:https://dev.mysql.com/downloads/connector/j/
下载后解压,找到mysql-connector-java-版本号.jar包,放到lib文件夹里,然后配置路径即可。
配置路径方法:右击项目名->Build Path->Configure build path->Librarys
然后选中Classpath,Add jars,把刚刚的.jar包添加进去即可。
package sql;
import java.sql.*;
public class DBConn {
public static Connection Conn;
public static Connection getConn() {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
}
catch(Exception e){
e.printStackTrace();
System.out.println("数据库驱动加载失败");
}
try {
Conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/web_test?serverTimezone=UTC","root","HYC123456");
System.out.println("数据库连接成功");
}
catch(Exception e) {
e.printStackTrace();
System.out.println("数据库连接失败");
}
return Conn;
}
public static void main(String[] args) {
DBConn Conn = new DBConn();
Conn.getConn();
}
}
operate类,这个类中的findmb()函数的作用是读取数据库中的信息。
在index.jsp页面中调用一次findmb()函数,保存到ArrayList数组中,然后在后面的代码中循环读取,已达到显示内容的作用,如果对数据库进行更新,只需要刷新页面便可以将新数据显示出来。
package sql;
import java.sql.*;
import java.util.ArrayList;
public class operate {
Connection conn=DBConn.getConn();
PreparedStatement pstmt = null;
public ArrayList<MessBoar> findmb(){
try {
ArrayList<MessBoar> al=new ArrayList<MessBoar>();
pstmt=conn.prepareStatement("select * from members");
ResultSet rs=pstmt.executeQuery();
while(rs.next()) {
System.out.println("rs有next");
MessBoar mb=new MessBoar();
mb.setname(rs.getString("name"));
mb.setid(rs.getInt("id"));
al.add(mb);
}
return al;
}
catch(Exception e) {
e.printStackTrace();
return null;
}
}
}
MessBoar类,这个类是存放数据库的每条数据的类型的类
package sql;
import java.sql.*;
public class MessBoar {
public String name;
public int id;
public void setname(String name) {
this.name=name;
}
public void setid(int id) {
this.id=id;
}
public String getname() {
return name;
}
public int getid() {
return id;
}
}