Java中实现连接数据库并进行查询-程序员宅基地

技术标签: java  web.xml  数据库  

  首先我们在在File中选择new在选择java project在任意取一个名字,如图:

  选择才创建的项目userManager,在src下分别创建dao包,DBHelper包(可直接在其他项目中把它复制过来),entity包和servlet包,如图:

  打开entity,在它下面new一个class,命名为User,然后定义三个变量代码如下:

package entity;

public class User {
	private String userID;
	private String username;
	private String userword;
	
	public String getUserID() {
		return userID;
	}
	public void setUserID(String userID) {
		this.userID = userID;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getUserword() {
		return userword;
	}
	public void setUserword(String userword) {
		this.userword = userword;
	}

	}

  打开DAO,在它下面new一个class,命名为Userdao,代码如下:

package dao;

import java.util.*;
import java.sql.*;

import entity.*;
import DBHelper.*;

public class Userdao {
	public List getAllUser() {
		String SQL = "SELECT * FROM user";
		ResultSet rs = DBHelper.getResultSet(SQL);
		return tools.ResultSettoList(rs, User.class);

		// try{
		// String SQL="SELECT*FROM user";
		// ResultSet rs= DBHelper.getResultSet(SQL);
		// List users=new ArrayList();
		// while(rs.next())
		// {
		// User u=new User();
		// u.setUserID(rs.getString("userID"));
		// u.setUsername(rs.getString("userName"));
		// u.setUserword(rs.getString("password"));
		// users.add(u);
		// }
		// return users;
		// }catch(Exception ex){return null;
		// }
		//
	}
	
	public boolean insert(User u){
		String SQL="INSERT INTO user(userID,username,userword) VALUES(?,?,?)";
		Object[] params=new Object[]{u.getUserID(),u.getUsername(),u.getUserword()};
		int n=DBHelper.ExecSql(SQL,params);
		if(n>0) return true;
		else return false;
		
	}
	public boolean update(User u){
		   String sql="update  user set username=?,userword=? where userID=?";
		   Object[] obj=new Object[]{u.getUsername(),u.getUserword(),u.getUserID()};
		   int rs=DBHelper.ExecSql(sql,obj);
		   if(rs==1)
		    return true;
		   else
		   return false;
		   
	   }
	public boolean delete(User u){
		   String sql="delete from user where userID=?";
		   Object[] obj=new Object[]{u.getUserID()};
		   int rs=DBHelper.ExecSql(sql,obj);
		   if(rs==1)
	      return true;
		   else
		  return true;
	   }

}

  接着还需要在DAO下创建一个类,命名为testdao,用于测试Userdaobao的代码,代码如下:

package dao;

import java.sql.SQLException;
import java.util.List;

import entity.User;

public class testDAO {
	public static void main(String[] args) throws SQLException {
//		 TODO Auto-generated method stub
//		测试查询
//     Userdao dao= new Userdao();
//     List list =dao.getAllUser();
//     System.out.println(list.size());
//		测试添加:
		   Userdao dao=new Userdao();
		   User u= new User();
//		   u.setUserID("d");
//		   u.setUsername("d");
//		   u.setUserword("d");
//		    dao.insert(u);
//		   
//		   测试删除:
//		   u.setUserID("d");
//		   dao.delete(u);
//		   System.out.println("u");
//		   测试修改
		   u.setUserID("c");
		   u.setUserword("q");
		   u.setUsername("q");
		   dao.update(u);
		   System.out.println("u");
	}

}

  打开servlet,在它下面new一个servlet,命名为UserServlet,把 pageEncoding改成UTF0-8;删除doGet和doPost里的内容,doGet和doPost里的代码如下:

package servlet;

import java.io.*;
import java.util.*;

import javax.servlet.*;
import javax.servlet.http.*;

import dao.*;
import entity.*;
import DBHelper.*;
public class Userservlet extends HttpServlet {

	/**
	 * Constructor of the object.
	 */
	public Userservlet() {
		super();
	}

	/**
	 * Destruction of the servlet. <br>
	 */
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}

	/**
	 * The doGet method of the servlet. <br>
	 *
	 * This method is called when a form has its tag value method equals to get.
	 * 
	 * @param request the request send by the client to the server
	 * @param response the response send by the server to the client
	 * @throws ServletException if an error occurred
	 * @throws IOException if an error occurred
	 */
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
			doPost(request, response);
	}

	/**
	 * The doPost method of the servlet. <br>
	 *
	 * This method is called when a form has its tag value method equals to post.
	 * 
	 * @param request the request send by the client to the server
	 * @param response the response send by the server to the client
	 * @throws ServletException if an error occurred
	 * @throws IOException if an error occurred
	 */
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		Userdao dao=new Userdao();
		List users=dao.getAllUser();
		request.getSession().setAttribute("users", users);
		response.sendRedirect("show.jsp");
		

	}
	

	/**
	 * Initialization of the servlet. <br>
	 *
	 * @throws ServletException if an error occurs
	 */
	public void init() throws ServletException {
		// Put your code here
	}

}

  在WebRoot下创建一个user命名的目录,然后在user下new一个show.jsp。先导入entity包,在把 pageEncoding改成UTF0-8;然后再body里写输出的样式,代码如下:

<%@ page language="java" import="java.util.*,dao.*,DBHelper.*,entity.*"  pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

    <title>User.jsp</title>

  </head>
  
  <body>
  <%
  List<User>users = (List<User>)session.getAttribute("users");
//String uid=request.getParameter("userID");

//String uname=request.getParameter("username");
//String password=request.getParameter("password");
//out.print("用户ID:"+uid+"<hr/>");
//out.print("姓名:"+uname+"<hr/>");
//out.print("密码:"+password+"<hr/>");

out.print("<table border=1 cellspacing=1>");
  out.print("<tr><td>id</td><td>用户名</td><td>密码</td></tr>");
    for(User u:users)
   {
    out.print("<tr>");
    out.print("<td>"+u.getUserID()+"</td>");
    out.print("<td>"+u.getUsername()+"</td>");
    out.print("<td>"+u.getUserword()+"</td>");
   out.print("</tr>");
    
   }
 out.print("</table>");
   %>
  </body>
</html>

  记得一定要将链接sql的驱动文件复制在WebRoot下的WEB-INF里的lib下面。

  打开WebRoot下的WEB-INF,打开web.xml,复制其路径,开启服务,输入网址(网址如http://localhost:8080/userManager/servlet/UserServlet)即可查看。路径如图:

转载于:https://www.cnblogs.com/qianpeng/p/5280175.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30670151/article/details/96420815

智能推荐

如何成为优秀的技术主管?你要做到这三点 -程序员宅基地

文章浏览阅读139次。阿里妹导读:技术主管,又叫「技术经理」,英文一般是 Tech Leader ,简称 TL。随着工作经验的不断积累,能力的不断提升,每个人都有机会成为Team Leader。然而在机会到来前,我们必须提前做好准备,对TL的工作职责有一定了解。当然,这也会为当下更好地配合TL工作打下基础。今天,阿里巴巴高级技术专家云狄将结合自己多年的经验,从开发规范、..._随着数据量的增大系统性能会不会出现明显问题?

Python 中的元组-程序员宅基地

文章浏览阅读252次,点赞9次,收藏4次。使用圆括号而非中括号来标识,定义元组后,就可使用索引来访问其元素,就像访问列表元素一样注:元组可以容纳多个数据和不同类型的数据,并且数据是有序存储的,元组不支持修改元素。

你好啊!这是今天人工智能精选要闻〔12.21〕-程序员宅基地

文章浏览阅读441次。作者|预见出品|遇见人工智能(微信ID: gowithai)期数|总第2017093期 每天的AI桌边谈资福利|点标题下蓝字,或微信搜“遇见人工智能”,关注后回复"报告",1秒钟获取麦肯锡、德勤等48份顶级最新AI报告。AI要闻百度与华为达成全面战略合作12月21日,百度与华为消费者业务共同宣布达成全面战略合作。未来双方将在互联网服务和内容生态、AI平台和技术等方面展开全方位深入合作,共同构建多赢_抖音37891604

【 VFE------多层体素特征编码——Stacked Voxel Feature Encoding】_体素vfe-程序员宅基地

文章浏览阅读661次。代码】【 VFE------多层体素特征编码——Stacked Voxel Feature Encoding】_体素vfe

线索二叉树和哈夫曼树_ltag是什么-程序员宅基地

文章浏览阅读612次,点赞2次,收藏2次。{//数据域//左孩子或线索指针//右孩子或线索指针左标志ltag=0,表示lchild指向左孩子结点;ltag=1,表示lchild指向前驱结点右标志rtag=0,表示rchild指向右孩子结点;rtag=1,表示rchild指向后继结点二叉树线索化的基本思想:二叉树的线索化实质上是遍历一棵二叉树。在遍历过程中,访问结点的操作是检查此结点的左、右指针域是否为空,如果为空,将它指向其前驱或后继结点的线索路径:是指从一个结点到另一个结点之间的分支序列。路径长度。_ltag是什么

Linux高级命令之find详解及实际应用_find . -name 搜索内容,命令的作用-程序员宅基地

文章浏览阅读1w次。本文将为您详细介绍Linux和Unix系统下的强大工具find命令,包括基本语法、常用选项和参数、高级用法和实际应用等内容。通过本文的学习,您将掌握如何使用find命令在文件系统中搜索文件和文件夹,并进行操作和管理。此外,还包括一些实际的应用场景,如在Linux中找到所有.log文件、查找最近更改的文件和删除所有tmp文件等,帮助您更好地理解如何使用find命令。_find . -name 搜索内容,命令的作用

随便推点

mysql 12_Navicat for MySQL12免费版-程序员宅基地

文章浏览阅读5.6k次。Navicat for MySQL12免费版是为mysql数据库推出的一款免费的管理软件,主要功能包括sql创建工具、编辑器、数据传输、导入或导出、报表、数据或结构同步等多项功能,为数据库管理、开发和维护提供了更完美的解决方案,兼容Drizzle、OurDelta 和 Percona Server等,适用于mysql3.21以上的版本。软件功能Navicat CloudNavicat for My..._navicat for mysql12

ubuntu18.04 安装texlive && texstudio_texlive2022 ubuntu18-程序员宅基地

文章浏览阅读2.8k次。使用的是清华源1、安装texlivesudo apt install texlive-full2、安装texstudio sudo apt install texstudio 3、测试,新建tex文件,拷贝下面代码,运行\documentclass{article}\usepackage{CJKutf8}\begin{document} \begin{CJK..._texlive2022 ubuntu18

CentOS7.9基于Apache2.4+Php7.4+Mysql8.0+Agent2架构部署Zabbix6.0LTS 亲测验证完美通过方案_php7.4 mysql8-程序员宅基地

文章浏览阅读1.1k次,点赞22次,收藏15次。Zabbix 由 Alexei Vladishev 创建,目前由 Zabbix SIA 主导开发和支持。Zabbix 是一个企业级的开源分布式监控解决方案。Zabbix 是一款监控网络的众多参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于电子邮件的告警,以实现对服务器问题做出快速反应。Zabbix 基于存储的数据提供出色的报告和数据可视化功能。这使得 Zabbix 成为容量规划的理想选择。_php7.4 mysql8

2023年的深度学习入门指南(21) - 百川大模型_百川大模型怎么使用-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏25次。前面我们用了三节的篇幅介绍了目前最强大的开源模型LLaMA2。这一节我们说一说国产大模型的一个代表,百川大模型。_百川大模型怎么使用

C/C++高级语言程序设计课程设计任务书[2022-01-02]_题目四、医院预约系统(难度系数**) 模拟微信公众号“美丽厦门智慧健康”,用c语言-程序员宅基地

文章浏览阅读466次。高级语言程序设计课程设计任务书课程设计名称 中文:高级语言程序设计课程设计英文:Computer Programming Basic Comprehensive Practice适用专业 网络22 培养层次 本科学期 第1学期 周数 1.5 学分 1 总学时 1.5周一、课程设计目的与要求课程设计目的在理论学习和基础实验的基础上,开发规模较大的程序,掌握应用计算机解决实际问题的基本方法,熟悉C程序开发的全过程。_题目四、医院预约系统(难度系数**) 模拟微信公众号“美丽厦门智慧健康”,用c语言

改进灰色预测matlab代码,灰色预测模型Matlab代码[比赛已经用过,保真好使]-程序员宅基地

文章浏览阅读1.7k次,点赞3次,收藏50次。【实例简介】灰色预测Matlab实现代码,在代码前面有例子介绍如何用,后面的代码改成你自己的数据即可直接运行,我们的代码上有填充好的数据,直接在上面修改就好,需要修改的地方都标注出来了,简单方便,保真呦!【实例截图】【核心代码】灰色预测步骤(1)输入前期的小样本数据(2)输入预测个数(3)运行y=input('请输入数据');n=length(y);yy=ones(n,1);yy(1)=y(1);..._改进灰色预测模型的代码

推荐文章

热门文章

相关标签