java操作数据库,以页面显示学生信息为例
该部分内容实现的功能主要是:从数据库中查询数据并展示到页面,在页面中新增数据信息,在页面中修改数据信息,在页面中删除数据信息。 =================stuList.jsp================
//本页为数据显示页面
<%@ page import="java.util.List" %>
<%@ page import="com.ibeifeng.student.Student" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>stuList</title>
</head>
<body>
<a href="addStu.jsp">新增学员</a>
<table width="100%" border="1px solid black">
<tr>
<td>学号</td>
<td>姓名</td>
<td>密码</td>
<td>性别</td>
<td>邮箱</td>
<td>操作</td>
</tr>
<%
List<Student> list = (List<Student>)request.getAttribute("list");
for(Student stu : list){
%>
<tr>
<td><%=stu.getId()%></td>
<td><%=stu.getName()%></td>
<td><%=stu.getPwd()%></td>
<td><%=stu.getSex()%></td>
<td><%=stu.getEmail()%></td>
<td><a href="updateStu.jsp?sid=<%=stu.getId()%>">修改</a> | <a href="doDel.jsp?sid=<%=stu.getId()%>">删除</a></td>
</tr>
<% }
%>
</table>
</body>
</html> ===============doList02.jsp==================
//本页是数据显示页面stuList的后台数据处理部分
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page import="com.ibeifeng.student.Student" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page import="com.ibeifeng.student.ConfigUtil" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
Class.forName(new ConfigUtil().getValue("driver"));
Connection conn = DriverManager.getConnection(
new ConfigUtil().getValue("url"),
new ConfigUtil().getValue("username"),
new ConfigUtil().getValue("password")); String sql = "select * from student";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
List<Student> list = new ArrayList<Student>();
while(rs.next()){
Student stu = new Student();
stu.setId(rs.getInt(1));
stu.setName(rs.getString(3));
stu.setPwd(rs.getString(2));
stu.setSex(rs.getInt(4));
stu.setEmail(rs.getString(5));
list.add(stu);
} if(rs != null){
rs.close();
}
if(ps != null){
ps.close();
}
if(conn != null){
conn.close();
} request.setAttribute("list",list);
request.getRequestDispatcher("stuList.jsp").forward(request,response);
%> ====================addStu.jsp==============
//本页为新增数据的页面展示部分
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>新增学员信息</title>
</head>
<body>
<form action="doSave.jsp" method="post">
<table align="center" border="1px solid black">
<tr>
<td>学号</td>
<td><input type="text" name="stuId" > </td>
</tr>
<tr>
<td>姓名</td>
<td><input type="text" name="stuName" ></td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" name="pwd" ></td>
</tr>
<tr>
<td>性别</td>
<td>
<input type="radio" name="gender" value="0">女
<input type="radio" name="gender" value="1">男
</td>
</tr>
<tr>
<td>邮箱</td>
<td><input type="text" name="email" ></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="submit" value="保存">
<input type="button" name="return" value="取消">
</td>
</tr>
</table>
</form>
</body>
</html> ===================doSave.jsp==============
//本页为数据新增页面,保存按钮的数据处理部分
<%@ page import="com.ibeifeng.student.ConfigUtil" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8"); Class.forName(new ConfigUtil().getValue("driver"));
Connection conn = DriverManager.getConnection(
new ConfigUtil().getValue("url"),new ConfigUtil().getValue("username"),new ConfigUtil().getValue("password")); String sql = "insert into student(stu_id,stu_name,pwd,sex,email) values(?,?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql); String rid = request.getParameter("stuId");
int id = Integer.parseInt(rid);
ps.setInt(1,id);
ps.setString(2,request.getParameter("stuName"));
ps.setString(3,request.getParameter("pwd"));
ps.setInt(4,1);
ps.setString(5,request.getParameter("email")); int isSuccess = ps.executeUpdate();
System.out.print(isSuccess);
if(isSuccess <= 0){
System.out.print("新增有误,请重试");
request.getRequestDispatcher("/stuInfo/addStu.jsp").forward(request,response);
}else{
request.getRequestDispatcher("/stuInfo/doList02.jsp").forward(request,response);
} if(ps != null){
ps.close();
}
if(conn != null){
conn.close();
}
%> ================updateStu.jsp===============
//本页为数据修改页面展示部分
<%@ page import="com.ibeifeng.student.StudentDao" %>
<%@ page import="com.ibeifeng.student.Student" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//获取前端页面传递的参数
String sid = request.getParameter("sid"); //该参数由stuList页面的<a href="updateStu.jsp?sid=stu.getStudentId()">传递过来
//创建StudentDao对象
StudentDao stuDao = new StudentDao();
Student stu = stuDao.getStuByStuId(sid); if(stu != null){
request.setAttribute("stu",stu);
} %> <html>
<head>
<title>新增学员信息</title>
</head>
<body>
<form action="doUpdate.jsp" method="post">
<table align="center" border="1px solid black">
<tr>
<td>学号</td>
<td><input type="text" name="stuId" readonly="readonly" value="<%=stu.getId()%>"> </td>
</tr>
<tr>
<td>姓名</td>
<td><input type="text" name="stuName" value="<%=stu.getName()%>"></td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" name="pwd" value="<%=stu.getPwd()%>"></td>
</tr>
<tr>
<td>性别</td>
<td>
<input type="radio" name="gender" value="0" <%if(stu.getSex() == 0){%>checked="checked"<%}%>>女
<input type="radio" name="gender" value="1" <%if(stu.getSex() == 1){%>checked="checked"<%}%>>男
</td>
</tr>
<tr>
<td>邮箱</td>
<td><input type="text" name="email" value="<%=stu.getEmail()%>"></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="submit" value="保存">
<input type="button" name="return" value="取消">
</td>
</tr>
</table>
</form>
</body>
</html> =================doUpdate.jsp==============
//本页为数据修改部分,后台数据处理操作的内容
<%@ page import="com.ibeifeng.student.ConfigUtil" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="com.ibeifeng.student.StudentDao" %>
<%@ page import="com.ibeifeng.student.Student" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8"); Class.forName(new ConfigUtil().getValue("driver"));
Connection conn = DriverManager.getConnection(
new ConfigUtil().getValue("url"),new ConfigUtil().getValue("username"),new ConfigUtil().getValue("password")); String stuid = request.getParameter("stuId");
int sid = Integer.parseInt(stuid);
String name = request.getParameter("stuName");
String pwd = request.getParameter("pwd");
String gender = request.getParameter("gender");
int gen = Integer.parseInt(gender);
String email = request.getParameter("email"); StudentDao stuDao = new StudentDao();
Student stu = new Student();
stu.setId(sid);
stu.setName(name);
stu.setPwd(pwd);
stu.setSex(gen);
stu.setEmail(email); int resule = stuDao.updateStu(stu);
if(resule > 0){
request.getRequestDispatcher("doList02.jsp").forward(request,response);
}else{
request.getRequestDispatcher("updateStu.jsp?sno="+stuid).forward(request,response);
}
%> ===============doDel.jsp===================
//本页为数据删除部分后台处理内容
<%@ page import="com.ibeifeng.student.StudentDao" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8"); String sid = request.getParameter("sid");
StudentDao stuDao = new StudentDao();
stuDao.delStu(sid);
request.getRequestDispatcher("doList02.jsp").forward(request,response);
%> ===============BaseDao.java=================
//本页为封装的方法,主要是涉及到数据库连接的初始化、查询、更新、资源释放
package com.ibeifeng.student; import java.sql.*; /*
* JDBC操作DAO通用类方法封装
* */
public class BaseDao {
static Connection conn = null;
static PreparedStatement ps = null;
static ResultSet rs = null;
//静态语句块
static{
try {
Class.forName(ConfigUtil.getValue("driver")); } catch (ClassNotFoundException e) {
e.printStackTrace();
}
} public static Connection getConn(){
try {
conn = DriverManager.getConnection(ConfigUtil.getValue("url"),
ConfigUtil.getValue("username"),
ConfigUtil.getValue("password"));
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
} /*
* 查询
* */
public ResultSet search(String sql){
try {
rs = ps.executeQuery();
return rs;
} catch (SQLException e) {
throw new RuntimeException();
}
} /*
* 更新数据
* */
public int modify(String sql){
try {
return ps.executeUpdate(sql);
} catch (SQLException e) {
throw new RuntimeException();
}
} public static void close(ResultSet rs, PreparedStatement ps, Connection conn){
try {
if(rs != null) {
rs.close();
}
if(ps != null) {
ps.close();
}
if(conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
} =================ConfigUtil.java==============
//本页封装了从配置文件读取数据的方法
package com.ibeifeng.student; import java.io.IOException;
import java.io.InputStream;
import java.util.Properties; public class ConfigUtil {
//通过key获取jdbc配置的value
public static String getValue(String key){
Properties pro = new Properties();
//获取流信息
InputStream is = ConfigUtil.class.getResourceAsStream("/jdbc.properties");
try {
//加载流文件
pro.load(is);
//获取属性值
return pro.getProperty(key);
} catch (IOException e) {
throw new RuntimeException();
}
}
} ================StudentDao.java==============
//本页封装了对于数据库,数据处理的一些方法
package com.ibeifeng.student; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; public class StudentDao {
/*
* Student Dao用于处理Student类
* */
Connection conn = null;
PreparedStatement ps = null;
public int updateStu(Student stu){
/*
* 更新学员信息
* */
String sql = "update student set stu_name=?,pwd=?,sex=?,email=? where stu_id=?";
try {
ps = BaseDao.getConn().prepareStatement(sql);
ps.setString(1,stu.getName());
ps.setString(2,stu.getPwd());
ps.setInt(3,stu.getSex());
ps.setString(4,stu.getEmail());
ps.setInt(5,stu.getId()); return ps.executeUpdate();
} catch (SQLException e) {
throw new RuntimeException();
}finally {
BaseDao.close(null,ps,conn);
}
} public Student getStuByStuId(String stu_id){
String sql = "select * from student where stu_id=?";
Student stu = null;
try {
conn = BaseDao.getConn();
ps = conn.prepareStatement(sql);
int sid = Integer.parseInt(stu_id);
ps.setInt(1,sid);
ResultSet rs = ps.executeQuery(); if(rs.next()){
stu = new Student();
stu.setId(rs.getInt("stu_id"));
stu.setName(rs.getString("stu_name"));
stu.setPwd(rs.getString("pwd"));
stu.setSex(rs.getInt("sex"));
stu.setEmail(rs.getString("email"));
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
BaseDao.close(null,ps,conn);
}
return stu;
} /*
* 根据学号删除学生信息
* */
public int delStu(String sid){
String sql = "delete from student where stu_id = ?";
conn = BaseDao.getConn();
try {
ps = conn.prepareStatement(sql);
int id = Integer.parseInt(sid);
ps.setInt(1,id);
return ps.executeUpdate();
} catch (SQLException e) {
throw new RuntimeException();
}
}
} ===================Student.java==============
//封装类对象
package com.ibeifeng.student; public class Student {
private int id;
private String name;
private String pwd;
private int sex;
private String email; public Student(){} public void setId(int id) {
this.id = id;
} public void setName(String name) {
this.name = name;
} public void setPwd(String pwd) {
this.pwd = pwd;
} public void setSex(int sex) {
this.sex = sex;
} public void setEmail(String email) {
this.email = email;
} public int getId() {
return id;
} public String getName() {
return name;
} public String getPwd() {
return pwd;
} public int getSex() {
return sex;
} public String getEmail() {
return email;
}
} =============jdbc.properties=============
//配置文件信息
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=123456
java操作数据库,以页面显示学生信息为例的更多相关文章
- java操作数据库:增删改查
不多bb了直接上. 工具:myeclipse 2016,mysql 5.7 目的:java操作数据库增删改查商品信息 test数据库的goods表 gid主键,自增 1.实体类Goods:封装数据库数 ...
- Java操作数据库——使用JDBC连接数据库
Java操作数据库——使用JDBC连接数据库 摘要:本文主要学习了如何使用JDBC连接数据库. 背景 数据持久化 数据持久化就是把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应 ...
- JDBC数据源(DataSource)数据源技术是Java操作数据库的一个很关键技术,流行的持久化框架都离不开数据源的应用。
JDBC数据源(DataSource)的简单实现 数据源技术是Java操作数据库的一个很关键技术,流行的持久化框架都离不开数据源的应用. 2.数据源提供了一种简单获取数据库连接的方式,并能在内部通 ...
- JDBC 数据库连接 Java操作数据库 jdbc快速入门
JDBC基本概念 Java DataBase Connectivity 数据库连接 java操作数据库 本质上(sun公司的程序员)定义的一套操作关系型数据库的规则 既接口 更新内容之前 代码 pa ...
- Java操作数据库——手动实现数据库连接池
Java操作数据库——手动实现数据库连接池 摘要:本文主要学习了如何手动实现一个数据库连接池,以及在这基础上的一些改进. 部分内容来自以下博客: https://blog.csdn.net/soonf ...
- Java操作数据库——使用连接池连接数据库
Java操作数据库——使用连接池连接数据库 摘要:本文主要学习了如何使用JDBC连接池连接数据库. 传统方式和连接池方式 传统方式的步骤 使用传统方式在Java中使用JDBC连接数据库,完成一次数据库 ...
- Java操作数据库——在JDBC里使用事务
Java操作数据库——在JDBC里使用事务 摘要:本文主要学习了如何在JDBC里使用事务. 使用Connection的事务控制方法 当JDBC程序向数据库获得一个Connection对象时,默认情况下 ...
- java 使用面向对象方式实现录入学生信息,取出成绩最大值、最小值、平均值、对其进行排序
题目: java 使用面向对象方式实现录入学生信息,取出成绩最大值.最小值.平均值.对其进行排序 gitup源码下载地址: https://github.com/benxiaohai8888/Java ...
- JDBC 4.0 开始Java操作数据库不用再使用 Class.forName加载驱动类了
JDBC 4.0 开始Java操作数据库不用再使用 Class.forName加载驱动类了 代码示例 转自 https://docs.oracle.com/javase/tutorial/jdbc/o ...
随机推荐
- springCloud学习4(Zuul服务路由)
镇博图 springcloud 总集:https://www.tapme.top/blog/detail/2019-02-28-11-33 本篇中 Zuul 版本为 1.x,目前最新的是 2.x,二者 ...
- 三星手机使用应用沙盒一键修改路由mac数据
之前文章介绍了怎么在安卓手机上安装激活xposed框架,xposed框架的极强的功能大家都知道,能够不修改apk的前提下,修改系统底层的参数,打比方在某些应用情景,大家需要修改手机的某个系统参数,这情 ...
- unity 用LineRender画四边形并测面积
作为一个菜鸡,这个高中数学题差不多废了我两个上午...好了,废话不多说,直接上代码... using System.Collections.Generic; using UnityEngine; pu ...
- QuickStart系列:Docker部署PostgreSQL
docker镜像地址: https://hub.docker.com/_/postgres/ https://www.widuu.com/chinese_docker/examples/postgre ...
- golang方法和接口
一. go方法 go方法:在函数的func和函数名间增加一个特殊的接收器类型,接收器可以是结构体类型或非结构体类型.接收器可以在方法内部访问.创建一个接收器类型为Type的methodName方法. ...
- ADAS 实车道路及场地测试服务
概述 高级驾驶员辅助系统(ADAS)作为车辆主动安全的关键系统,已经被越来越多的车辆配置.ADAS系统与车辆动力.制动.转向系统有直接耦合,是车辆中可靠性要求很高的控制系统,因此针对A ...
- Subsequence(HDU3530+单调队列)
题目链接 传送门 题面 题意 找到最长的一个区间,使得这个区间内的最大值减最小值在\([m,k]\)中. 思路 我们用两个单调队列分别维护最大值和最小值,我们记作\(q1\)和\(q2\). 如果\( ...
- The 16th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple (Mirror)
B题 思路 因为 \[ x=\sum\limits_{k=1}^{n}ka_k\\ y=\sum\limits_{k=1}^{n}ka_{k}^{2} \] 我们设交换前和交换后的这两个等式的值设为\ ...
- poj3268 Silver Cow Party(最短路)
非常感谢kuangbin专题啊,这道题一开始模拟邻接表做的,反向边不好处理,邻接矩阵的话舒服多了. 题意:给n头牛和m条有向边,每头牛1~n编号,求所有牛中到x编号去的最短路+回来的最短路的最大值. ...
- 使用 Word 写作论文时设置格式技巧记录
这里主要记录使用 Word 2013 版本的 Microsoft office Word 软件进行论文书写时的一些常用的格式设置技巧,以供分享与记录. Word文档页脚添加页码 Word设置多级标题格 ...