<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8” import = “java.util.,com.kaka.entity.”%>
显示学生信息清单
<%
if(request.getAttribute(“stus”)!=null){
List li = (List)request.getAttribute(“stus”);
for(int i = 0; i < li.size(); i++){
Student student = li.get(i);
%>
<%=student.getId() %> <%=student.getName() %> <%=student.getSex() %> <%=student.getAge() %><%
}
}
%>
- 在添加表单中需要含有action的隐藏域
- < input type=“hidden” name=“action” value=“add” / >
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
添加学生信息
ID:
NAME:
SEX:
AGE:
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8” import = “com.kaka.entity.*”%>
修改界面
<%
Student s = (Student)request.getAttribute(“student”);
if(s!=null){
%>
ID:
NAME:
SEX:
AGE:
<%}else{
out.print(“修改的对象不存在!!!”);
}
%>
package com.kaka.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JDBCUtil {
//定义常量
final static String driver = “com.mysql.jdbc.Driver”;
final static String url = “jdbc:mysql://localhost:3306/db0711?useUnicode=true&characterEncoding=utf8”;
final static String username = “root”;
final static String password = “root”;
//声明常用的对象
protected Connection conn = null;
protected PreparedStatement pstmt = null;
protected ResultSet rs = null;
//静态代码块
static{
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//获取连接
public void getConnection(){
try {
conn = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
}
//关闭资源
public void closeAll(){
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(pstmt != null){
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
package com.kaka.entity;
public class Student {
private int id;
private String name;
private String sex;
private String age;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(int id, String name, String sex, String age) {
super();
this.id = id;
this.name = name;
this.sex = sex;
this.age = age;
}
@Override
public String toString() {
return “Student [id=” + id + “, name=” + name + “, sex=” + sex + “, age=” + age + “]”;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
package com.kaka.dao;
import java.util.List;
import com.kaka.entity.Student;
public interface StuDao {
public List findAll();
public boolean addStudent(Student student);
public Student findOne(int id);
public boolean updateStudent(Student student);
public boolean deleteDeptById(int id);
}
package com.kaka.dao;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.kaka.entity.Student;
import com.kaka.util.JDBCUtil;
public class StuDaoImpl extends JDBCUtil implements StuDao{
@Override
public List findAll() {
List li = new ArrayList();
try {
String sql = “SELECT * FROM STUDENT”;
super.getConnection();
super.pstmt = super.conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next()){
Student stu = new Student();
stu.setId(rs.getInt(“id”));
stu.setName(rs.getString(“name”));
stu.setSex(rs.getString(“sex”));
stu.setAge(rs.getString(“age”));
li.add(stu);
}
return li;
} catch (SQLException e) {
e.printStackTrace();
}finally{
super.closeAll();
}
return null;
}
@Override
public boolean addStudent(Student student) {
try {
String sql = “INSERT INTO STUDENT(id,name,sex,age) VALUES(?,?,?,?)”;
super.getConnection();
super.pstmt = super.conn.prepareStatement(sql);
pstmt.setInt(1, student.getId());
pstmt.setString(2, student.getName());
pstmt.setString(3, student.getSex());
pstmt.setString(4, student.getAge());
int i = pstmt.executeUpdate();
if(i > -1){
return true;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
super.closeAll();
}
return false;
}
@Override
public Student findOne(int id) {
try {
String sql = “SELECT * FROM STUDENT WHERE ID=?”;
super.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);
rs = pstmt.executeQuery();
Student student = new Student();
if(rs.next()){
student.setId(rs.getInt(“id”));
student.setName(rs.getString(“name”));
student.setSex(rs.getString(“sex”));
student.setAge(rs.getString(“age”));
}
return student;
} catch (SQLException e) {
e.printStackTrace();
}finally{
super.closeAll();
}
return null;
}
@Override
public boolean updateStudent(Student student) {
try {
String sql = “UPDATE STUDENT SET name=?,sex=?,age=? WHERE id=?”;
super.getConnection();
super.pstmt = super.conn.prepareStatement(sql);
pstmt.setString(1, student.getName());
pstmt.setString(2, student.getSex());
pstmt.setString(3, student.getAge());
pstmt.setInt(4, student.getId());
int i = pstmt.executeUpdate();
if(i > -1){
return true;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
super.closeAll();
}
return false;
}
@Override
public boolean deleteDeptById(int id) {
try {
String sql = “DELETE FROM STUDENT WHERE ID=?”;
super.getConnection();
super.pstmt = super.conn.prepareStatement(sql);
pstmt.setInt(1, id);
int i = pstmt.executeUpdate();
if(i > -1){
return true;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
super.closeAll();
}
return false;
}
}
package com.kaka.controller;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.kaka.dao.StuDao;
import com.kaka.dao.StuDaoImpl;
import com.kaka.entity.Student;
public class StuServlet extends HttpServlet{
private final static String oldEncoding = “ISO-8859-1”;
private static String newEncoding = null;
public StuServlet() {
super();
}
@Override
public void destroy() {
super.destroy();
}
@Override
public void init(ServletConfig config) throws ServletException {
newEncoding = config.getInitParameter(“encoding”);
}
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取操作类型
String action = request.getParameter(“action”);
//根据操作类型执行特定操作
if(“list”.equals(action)){
//获取StuDao对象
StuDao studao = new StuDaoImpl();
//调用dao中的findAll方法
最后
ActiveMQ消息中间件面试专题
- 什么是ActiveMQ?
- ActiveMQ服务器宕机怎么办?
- 丢消息怎么办?
- 持久化消息非常慢怎么办?
- 消息的不均匀消费怎么办?
- 死信队列怎么办?
- ActiveMQ中的消息重发时间间隔和重发次数吗?
ActiveMQ消息中间件面试专题解析拓展:
redis面试专题及答案
- 支持一致性哈希的客户端有哪些?
- Redis与其他key-value存储有什么不同?
- Redis的内存占用情况怎么样?
- 都有哪些办法可以降低Redis的内存使用情况呢?
- 查看Redis使用情况及状态信息用什么命令?
- Redis的内存用完了会发生什么?
- Redis是单线程的,如何提高多核CPU的利用率?
Spring面试专题及答案
- 谈谈你对 Spring 的理解
- Spring 有哪些优点?
- Spring 中的设计模式
- 怎样开启注解装配以及常用注解
- 简单介绍下 Spring bean 的生命周期
Spring面试答案解析拓展
高并发多线程面试专题
- 现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之后执行,并且 T3 线程在 T2 之后执行?
- Java 中新的 Lock 接口相对于同步代码块(synchronized block)有什么优势?如果让你实现一个高性能缓存,支持并发读取和单一写入,你如何保证数据完整性。
- Java 中 wait 和 sleep 方法有什么区别?
- 如何在 Java 中实现一个阻塞队列?
- 如何在 Java 中编写代码解决生产者消费者问题?
- 写一段死锁代码。你在 Java 中如何解决死锁?
高并发多线程面试解析与拓展
jvm面试专题与解析
- JVM 由哪些部分组成?
- JVM 内存划分?
- Java 的内存模型?
- 引用的分类?
- GC什么时候开始?
JVM面试专题解析与拓展!
哈希的客户端有哪些?
- Redis与其他key-value存储有什么不同?
- Redis的内存占用情况怎么样?
- 都有哪些办法可以降低Redis的内存使用情况呢?
- 查看Redis使用情况及状态信息用什么命令?
- Redis的内存用完了会发生什么?
- Redis是单线程的,如何提高多核CPU的利用率?
[外链图片转存中…(img-PYRVI8WN-1714445493504)]
Spring面试专题及答案
- 谈谈你对 Spring 的理解
- Spring 有哪些优点?
- Spring 中的设计模式
- 怎样开启注解装配以及常用注解
- 简单介绍下 Spring bean 的生命周期
Spring面试答案解析拓展
[外链图片转存中…(img-Gh1819yf-1714445493504)]
高并发多线程面试专题
- 现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之后执行,并且 T3 线程在 T2 之后执行?
- Java 中新的 Lock 接口相对于同步代码块(synchronized block)有什么优势?如果让你实现一个高性能缓存,支持并发读取和单一写入,你如何保证数据完整性。
- Java 中 wait 和 sleep 方法有什么区别?
- 如何在 Java 中实现一个阻塞队列?
- 如何在 Java 中编写代码解决生产者消费者问题?
- 写一段死锁代码。你在 Java 中如何解决死锁?
高并发多线程面试解析与拓展
[外链图片转存中…(img-insppatt-1714445493504)]
jvm面试专题与解析
- JVM 由哪些部分组成?
- JVM 内存划分?
- Java 的内存模型?
- 引用的分类?
- GC什么时候开始?
JVM面试专题解析与拓展!
[外链图片转存中…(img-Li9Wb11a-1714445493504)]