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 ...
随机推荐
- 【imx6ul应用开发】如何修改串口?
4.1如何修改串口?答:开发板已经调好了串口驱动,调试串口,只需要修改dts文件即可,客户可以根据实际需要,确定硬件管脚具体用哪一个. 打开内核源代码/arch/arm/boot/dts/myb-y6 ...
- MySQL AutoIncrement--自增锁模式
自增锁模式 在MYSQL 5.1.22版本前,自增列使用AUTO_INC Locking方式来实现,即采用一种特殊的表锁机制来保证并发插入下自增操作依然是串行操作,为提高插入效率,该锁会在插入语句完成 ...
- Shell 行遍历命令行的输出结果
对于命令行输出的结果,如果要遍历,一般都是用for循环遍历,具体语法为: for line in `ls` do dosomethingdone 此时对于ls这类语句的输出结果,在遍历的时候会 ...
- 【转】Vsftpd-3.0.2服务器arm-linux移植—mini2440开发板
Vsftpd-3.0.2服务器arm-linux移植—mini2440开发板 开发板:mini2440(2011.04.21)环境:ubuntu9.10 为方便的将文件上传到开发板,采用vsftpd, ...
- Codeforces G. Bus Number(dfs排列)
题目描述: Bus Number time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
- springboot在idea的RunDashboard如何显示出来
找到.idea文件下的workspace.xml,并找到RunDashboard 加入如下配置 <option name="configurationTypes"> & ...
- 51nod 1053 最大M子段和 V2
N个整数组成的序列a[1],a[2],a[3],…,a[n],将这N个数划分为互不相交的M个子段,并且这M个子段的和是最大的.如果M >= N个数中正数的个数,那么输出所有正数的和. 例如:-2 ...
- 案例实战之如何写一个webpack loader
通过以下几个实例掌握webpack loader的写法 1.写一个多语言替换的loader 在index.js在页面上插入了一个{{title}}文本,我们需要在打包的时候将其替换成对应的多语言 fu ...
- ARTS-week2
Algorithm 给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本.所谓无效化 IP 地址,其实就是用 "[.]" 代替了每个 ".&q ...
- 使用mybatis框架实现带条件查询-单条件
之前我们写的查询sql都是没有带条件的,现在来实现一个新的需求,根据输入的字符串,模糊查询用户表中的信息 UserMapper.xml UserMapper.java 与jdbc的比较: 编写测试方法 ...