JDBC方式从数据库中查询数据并显示
新博客地址https://www.jianshu.com/u/8e54644eafae
1.创建数据库表myuser
DROP TABLE IF EXISTS `myuser`;
CREATE TABLE `myuser` (
`user_name` varchar(255) NOT NULL COMMENT '姓名',
`id` int(11) NOT NULL AUTO_INCREMENT,
`age` int(11) DEFAULT NULL,
`password` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
2.实体类
package yang.mybatis.domain; public class User {
//实体类的成员变量和数据库表的字段名称和类型一致
private int id;
private String user_name;
private int age;
private String password; public User(){}
public User(String name,int id, int age,String password) {
super();
this.id = id;
this.user_name = name;
this.age = age;
this.password = password;
}
//创建每个成员变量的set和get方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String name) {
this.user_name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void setPassword(String password) {
this.password = password;
} public String getPassword() {
return password;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + user_name + ", age=" + age + "]";
} }
3.1UserDao,连接数据库,查询数据库表中所有的记录
package yang.mybatis.dao; import yang.mybatis.domain.User; import java.sql.*;
import java.util.ArrayList;
import java.util.List; /**
* Created by yangshijing on 2017/11/10 0010.
*/
public class UserDaoTest {
public List<User> getAll(){
List<User> Users = new ArrayList<User>(); Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null; try {
String driverClass = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql:///mydb";
String user = "root";
String pass= "1234"; Class.forName(driverClass);
connection = DriverManager.getConnection(url, user, pass); String sql = "SELECT user_name, id, age, password FROM myuser";
preparedStatement = connection.prepareStatement(sql); resultSet = preparedStatement.executeQuery();
while(resultSet.next()){
String user_name = resultSet.getString(1);
int id = resultSet.getInt(2);
int age = resultSet.getInt(3);
String password = resultSet.getString(4);
User userl= new User(user_name,id,age,password);
Users.add(userl);
}
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
if(resultSet != null){
resultSet.close();
}
} catch (SQLException e) {
e.printStackTrace();
} try {
if(preparedStatement != null){
preparedStatement.close();
}
} catch (SQLException e) {
e.printStackTrace();
} try {
if(connection != null){
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
} return Users;
}
}
3.2根据用户Id删除用户数据
public void deleteById(int id) {
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
String driverClass = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql:///mydb";
String user = "root";
String pass= "1234"; Class.forName(driverClass);
connection = DriverManager.getConnection(url, user, pass); String sql = "DELETE FROM myuser WHERE id=?";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1,id);
int i = preparedStatement.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
if(preparedStatement != null){
preparedStatement.close();
}
} catch (SQLException e) {
e.printStackTrace();
} try {
if(connection != null){
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
4.1编写查询Servlet
package yang.mybatis.servlet; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import yang.mybatis.dao.UserDaoImp;
import yang.mybatis.dao.UserDaoTest;
import yang.mybatis.domain.User; import java.io.IOException;
import java.util.List; /**
* Created by yangshijing on 2017/11/10 0010.
*/
@Controller
public class ListAllStudent extends javax.servlet.http.HttpServlet {
@Override
protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
doGet(request,response);
} @Override
protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
try {
UserDaoTest userDaoTest = new UserDaoTest();
List<User> list = userDaoTest.getAll();
//将从数据库中查询到的数据方法request域中
request.setAttribute("list",list);
//利用请求转发的方式,将这次请求域中的数据传到另一个页面进行显示
request.getRequestDispatcher("/jsp/hello1.jsp").forward(request,response);
} catch (Exception e) {
e.printStackTrace();
}
}
}
4.2删除Servlet
package yang.mybatis.servlet; import yang.mybatis.dao.UserDaoTest; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException; /**
* Created by yangshijing on 2017/11/10 0010.
*/
public class DeleteServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
} @Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//从request域中获取的数据是String类型
String id = request.getParameter("id");
UserDaoTest userDaoTest = new UserDaoTest();
//通过Interger.parseInt()方法,将String类型转换为int类型
userDaoTest.deleteById(Integer.parseInt(id));
request.getRequestDispatcher("/listAllStudent").forward(request,response);
}
}
5.Web应用根目录下/jsp/hello1.jsp页面对数据进行显示
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>用户列表</title>
</head>
<body>
<a href="/myAction/listAllStudent.action">SpringMvc</a>
<a href="/listAllStudent">Servlet</a>
<br>
<!--设置表格边框的宽度-->
<table border="1" cellpadding="10" cellspacing="0">
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
<th>密码</th>
<th>删除</th>
</tr>
<c:forEach items="${list}" var="user">
<tr>
<td> ${user.id}</td>
<td> ${user.user_name}</td>
<td> ${user.age}</td>
<td> ${user.password}</td>
<td><a href="/deleteServlet?id=${user.id}">Delete</a></td>
</tr>
</c:forEach>
</table> </body>
</html>
6.结果
JDBC方式从数据库中查询数据并显示的更多相关文章
- 使用JDBC从数据库中查询数据的方法
* ResultSet 结果集:封装了使用JDBC 进行查询的结果 * 1. 调用Statement 对象的 executeQuery(sql) 方法可以得到结果集 * 2. ResultSet 返回 ...
- flask再学习-思考之怎么从数据库中查询数据在页面展示!
看别人视频觉得很简单,要自己做蒙蔽了!这样子.NO! 1. 流程: 首先要有和数据库连接的驱动!一般有PYMySQL mysqlclient 等 使用扩展Flask-SQLAlchemy 获得orm对 ...
- MongoDB数据库中查询数据(下)
MongoDB数据库中查询数据(下) 在find中,options参数值为一个对象,用来设置查询数据时使用的选项,下面我们来对该参数值对象中可以使用的属性进行介绍: 1. fields; 该属性值为一 ...
- 在MongoDB数据库中查询数据(上)
在MongoDB数据库中查询数据(上) 在MongoDB数据库中,可以使用Collection对象的find方法从一个集合中查询多个数据文档,find方法使用方法如下所示: collection.fi ...
- 使用JDBC从数据库中查询数据
* ResultSet 结果集:封装了使用JDBC 进行查询的结果 * 1. 调用Statement 对象的 executeQuery(sql) 方法可以得到结果集 * 2. ResultSet 返回 ...
- C#Web从0到1—创建一个web并从VS集成的SQLlocalDB数据库中查询数据
软件说明: VS2017,腾讯云服务器10元1个月,系统Win2012 R2标准版 第一步:建立第一个网页 建立工程 建好后,可以打开View选项打开项目资源浏览器和工具箱,后文会多次用到这两个版面 ...
- SAP 从数据库中查询数据,带有where 条件。
数据库表 代码 *& Report ZSELECT_DATA_FROM_ZMAST_CUST *&------------------------------------------- ...
- 向mysql数据库中插入数据时显示“Duplicate entry '1′ for key ‘PRIMARY' ”错误
错误情况如题,出现这个错误的原因十分简单: 很明显,这是主键的问题. 在一张数据表中是不能同时出现多个相同主键的数据的 这就是错误的原因,解决的方法: 1.可以将这张表设置成无主键(mysql支持,其 ...
- C#-WinForm-ListView-表格式展示数据、如何将数据库中的数据展示到ListView中、如何对选中的项进行修改
在展示数据库中不知道数量的数据时怎么展示最好呢?--表格 ListView - 表格形式展示数据 ListView 常用属性 HeaderStyle - "详细信息"视图中列标头的 ...
随机推荐
- uva1152 - 4 Values whose Sum is 0(枚举,中途相遇法)
用中途相遇法的思想来解题.分别枚举两边,和直接暴力枚举四个数组比可以降低时间复杂度. 这里用到一个很实用的技巧: 求长度为n的有序数组a中的数k的个数num? num=upper_bound(a,a+ ...
- linux查看网络链接状况命令netstat
linux查看网络链接状况命令 netstat 参数如下: -a 显示所有socket,包括正在监听的. -c 每隔1秒就重新显示一遍,直到用户中断它. -i 显示所有网络接口的信息,格式同“ifco ...
- Magic Index 寻找数组中A[i]=i的位置(原题转自微信号待字闺中)
有一个有意思的题目叫做Magic Index:给定一个数组A,其中有一个位置被称为Magic Index,含义是:如果i是Magic Index,则A[i] = i.假设A中的元素递增有序.且不重复, ...
- object.observe数据绑定
object.observe方法格式如下: object.observe(object,callback) 监听object对象,当该对象有新增或更新或删除等操作,就会触发callback,就实现了双 ...
- BZOJ1116:[POI2008]CLO
浅谈并查集:https://www.cnblogs.com/AKMer/p/10360090.html 题目传送门:https://lydsy.com/JudgeOnline/problem.php? ...
- SQL简单嵌套查询与非嵌套查询的比较(MSSQL2005)
某天的工作是修复某个项目的bug,接着就发现,其sql极其混乱,有非常多的left join和in操作,还有嵌套查询(只有一个表的嵌套查询).不知道看到过哪里的资料说,嵌套查询速度慢,于是我把全部嵌套 ...
- 模块化方案esl以及amd的依赖方式
来自AMD设计思想的总结和思考 在之前了解es6模块化的时候有遇到过依赖循环的问题,在es6中对于模块是引用性的,而当时于es6模块化做对比的commonjs(CMD规范)对于模块是值类型(会将其缓存 ...
- Plain text considered harmful: A cross-domain exploit
referer:http://balpha.de/2013/02/plain-text-considered-harmful-a-cross-domain-exploit/ Data from aro ...
- Python数据库(二)-Mysql数据库插入数据
通过python连接mysql数据库,并插入数据 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import pymysql ...
- VMware:Configuration file was created by a VMware product with more features than this version
Few days ago,I opened the Genesys demo VM by VMware Server 1.0.4 and got an error like this: "C ...