导入包---实体类------数据库连接----数据库操作----service层数据操作----网页对service层可视化实现


model

package com.ij34.model;

public class article {
private int id;
private String title;
private String content;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
} }

dao

package com.ij34.dao;

import java.sql.DriverManager;

import com.mysql.jdbc.Connection;

public class DbConn {
private static String username="root";
private static String password="123456";
private static String url="jdbc:mysql://localhost:3306/articles?useUnicode=true&characterEncoding=UTF-8";
private static Connection conn=null; public static Connection getConnection(){
if(conn==null){
try {
Class.forName("com.mysql.jdbc.Driver");
conn=(Connection) DriverManager.getConnection(url, username, password);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
return conn;
} //test connection
public static void main(String[] args) {
DbConn db=new DbConn();
System.out.println(db.toString());
}
}
package com.ij34.dao;

import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List; import com.ij34.model.article;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement; public class ArticleDao { public List<article> getfindAll(){ //查All,返回list
List<article> list=new ArrayList<article>();
String sql="select * from article";
Connection conn=DbConn.getConnection();
try {
PreparedStatement pstm=(PreparedStatement) conn.prepareStatement(sql);
ResultSet rs=pstm.executeQuery();
while(rs.next()){
article art=new article();
art.setId(rs.getInt("id"));
art.setTitle(rs.getString("title"));
art.setContent(rs.getString("content"));
list.add(art);
}
rs.close();
pstm.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return list; } public boolean addArticle(article art){ //增
String sql="insert into article(title,content)values(?,?)";
Connection conn=DbConn.getConnection();
try {
PreparedStatement pstm=(PreparedStatement) conn.prepareStatement(sql);
pstm.setString(1, art.getTitle());
pstm.setString(2, art.getContent());
int count=pstm.executeUpdate();
pstm.close();
if(count>0) return true;
else return false;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return false; } public boolean updateArticle(article art){ //修改
String sql="update article set title=?,content=? where id=?";
Connection conn=DbConn.getConnection();
try {
PreparedStatement pstm=(PreparedStatement) conn.prepareStatement(sql);
pstm.setString(1, art.getTitle());
pstm.setString(2, art.getContent());
pstm.setInt(3, art.getId());
int count=pstm.executeUpdate();
pstm.close();
if(count>0) return true;
else return false;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return false; } public boolean deleteArticle(int id){ //删除,根据id
String sql="delete from article where id=?";
//String sql="delete from article where id='"+id+"'";
Connection conn=DbConn.getConnection();
try {
PreparedStatement pstm=(PreparedStatement) conn.prepareStatement(sql);
pstm.setInt(1, id);
int count=pstm.executeUpdate();
pstm.close();
if(count>0) return true;
else return false;
} catch (Exception e) {
e.printStackTrace();
}
return false; } public article selectById(int id){//根据id查找
String sql="select * from article where id="+id;
Connection conn=DbConn.getConnection();
article art=null;
try {
PreparedStatement pstm=(PreparedStatement) conn.prepareStatement(sql);
ResultSet rs=pstm.executeQuery();
while(rs.next()){
art=new article();
art.setId(rs.getInt("id"));
art.setTitle(rs.getString("title"));
art.setContent(rs.getString("content"));
}
rs.close();
pstm.close();
} catch (Exception e) {
e.printStackTrace();
}
return art;
}
}

service

add

package com.ij34.service;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.ij34.dao.ArticleDao;
import com.ij34.model.article; public class addArticle extends HttpServlet{ /**
*
*/
private static final long serialVersionUID = 1L; @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(req, resp);
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
article art=new article();
String title=req.getParameter("title");
String content=req.getParameter("content");
art.setTitle(new String(title.getBytes("ISO-8859-1"),"UTF-8"));
art.setContent(new String(content.getBytes("ISO-8859-1"),"UTF-8"));
ArticleDao ad=new ArticleDao();
ad.addArticle(art);
req.getRequestDispatcher("showArticle").forward(req, resp);
} }

del

package com.ij34.service;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.ij34.dao.ArticleDao; public class deleteArticle extends HttpServlet{ /**
*
*/
private static final long serialVersionUID = 1L; @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(req, resp);
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
String idStr=req.getParameter("id");
if(idStr!=null&&!idStr.equals("")){
int id=Integer.valueOf(idStr);
ArticleDao ad=new ArticleDao();
ad.deleteArticle(id);
}
req.getRequestDispatcher("showArticle").forward(req, resp);
} }

find

package com.ij34.service;

import java.io.IOException;
import java.util.List; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.ij34.dao.ArticleDao;
import com.ij34.model.article; public class showArticle extends HttpServlet{ /**
*
*/
private static final long serialVersionUID = 1L; @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(req, resp);
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
ArticleDao ad=new ArticleDao();
List<article> list=ad.getfindAll();
req.setAttribute("list", list);
req.getRequestDispatcher("show.jsp").forward(req, resp);
} }

update

package com.ij34.service;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.ij34.dao.ArticleDao;
import com.ij34.model.article; public class updateArticle extends HttpServlet{ /**
*
*/
private static final long serialVersionUID = 1L; @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
String idStr=req.getParameter("id");
if(idStr!=null&&!idStr.equals("")){
ArticleDao ad=new ArticleDao();
int id=Integer.valueOf(idStr);
article art=ad.selectById(id);
req.setAttribute("article", art);
}
req.getRequestDispatcher("update.jsp").forward(req, resp);
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
article art=new article();
String idStr=req.getParameter("id");
String title=req.getParameter("title");
String content=req.getParameter("content");
art.setId(Integer.valueOf(idStr));
art.setTitle(new String(title.getBytes("ISO-8859-1"),"UTF-8"));
art.setContent(new String(content.getBytes("ISO-8859-1"),"UTF-8"));
ArticleDao ad=new ArticleDao();
ad.updateArticle(art);
req.getRequestDispatcher("showArticle").forward(req, resp);
} }

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Articles</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>addArticle</servlet-name>
<servlet-class>com.ij34.service.addArticle</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>addArticle</servlet-name>
<url-pattern>/addArticle</url-pattern>
</servlet-mapping> <servlet>
<servlet-name>deleteArticle</servlet-name>
<servlet-class>com.ij34.service.deleteArticle</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>deleteArticle</servlet-name>
<url-pattern>/deleteArticle</url-pattern>
</servlet-mapping> <servlet>
<servlet-name>showArticle</servlet-name>
<servlet-class>com.ij34.service.showArticle</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>showArticle</servlet-name>
<url-pattern>/showArticle</url-pattern>
</servlet-mapping> <servlet>
<servlet-name>updateArticle</servlet-name>
<servlet-class>com.ij34.service.updateArticle</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>updateArticle</servlet-name>
<url-pattern>/updateArticle</url-pattern>
</servlet-mapping>
</web-app>

网页

index

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:forward page="showArticle"/> //要写doget

add

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>添 加</title>
</head>
<body>
<form action="addArticle" method="post">
<table align="center">
<tr>
<td colspan="2"><center><h4>添加</h4></center></td>
</tr>
<tr>
<td>标 题:</td><td><input type="text" name="title"/></td>
</tr>
<tr>
<td>内 容:</td><td><input type="text" name="content"/></td>
</tr>
<tr>
<td><input type="submit" value="提 交"/></td><td><input type="reset" value="重 置"/></td>
</tr>
</table>
</form>
</body>
</html>

update

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>修 改</title>
</head>
<body>
<form action="updateArticle" method="post">
<table align="center">
<tr>
<td colspan="2"><center><h4>修 改</h4></center></td>
</tr>
<tr>
<td>编 号:</td><td><input type="text" name="id" value="${article.id }" readonly="readonly"/></td>
</tr>
<tr>
<td>标 题:</td><td><input type="text" name="title" value="${article.title }"/></td>
</tr>
<tr>
<td>内 容:</td><td><input type="text" name="content" value="${article.content }"></td>
</tr>
<tr>
<td><input type="submit" value="提 交"/></td><td><input type="button" value="返回" onclick="history.go(-1)"/></td>
</tr>
</table>
</form>
</body>
</html>

show

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>显示</title>
</head>
<body>
<form action="showArticle" method="post">
<table align="center">
<tr>
<th>编 号 </th>
<th>标 题 </th>
<th> 内 容 </th>
<th> 操 作 </th>
</tr> <c:forEach var="li" items="${list}">
<tr>
<td>${li.id} </td>
<td> ${li.title} </td>
<td> ${li.content} </td>
<td><a href="deleteArticle?id=${li.id}">删除</a>|<a href="updateArticle?id=${li.id}">修改</a></td>
</tr>
</c:forEach> <tr>
<td align="center"><a href="add.jsp"> 添 加 </a></td>
</tr>
</table>
</form>
</body>
</html>

结果

基本的CRUD操作的更多相关文章

  1. 【翻译】MongoDB指南/CRUD操作(四)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...

  2. 【翻译】MongoDB指南/CRUD操作(三)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...

  3. 【翻译】MongoDB指南/CRUD操作(二)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...

  4. 【翻译】MongoDB指南/CRUD操作(一)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(一) 主要内容:CRUD操作简介,插入文档,查询文档. CRUD操作包括创建.读取.更新和删 ...

  5. ASP.NET Core Web API Cassandra CRUD 操作

    在本文中,我们将创建一个简单的 Web API 来实现对一个 “todo” 列表的 CRUD 操作,使用 Apache Cassandra 来存储数据,在这里不会创建 UI ,Web API 的测试将 ...

  6. MongoDB的CRUD操作

    1. 前言 在上一篇文章中,我们介绍了MongoDB.现在,我们来看下如何在MongoDB中进行常规的CRUD操作.毕竟,作为一个存储系统,它的基本功能就是对数据进行增删改查操作. MongoDB中的 ...

  7. 【Java EE 学习 44】【Hibernate学习第一天】【Hibernate对单表的CRUD操作】

    一.Hibernate简介 1.hibernate是对jdbc的二次开发 2.jdbc没有缓存机制,但是hibernate有. 3.hibernate的有点和缺点 (1)优点:有缓存,而且是二级缓存: ...

  8. 使用MyBatis对表执行CRUD操作

    一.使用MyBatis对表执行CRUD操作——基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: <?xml version="1.0&quo ...

  9. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)

    本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...

  10. MyBatis入门学习教程-使用MyBatis对表执行CRUD操作

    上一篇MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对use ...

随机推荐

  1. Java数据结构和算法 - 什么是2-3-4树

    Q1: 什么是2-3-4树? A1: 在介绍2-3-4树之前,我们先说明二叉树和多叉树的概念. 二叉树:每个节点有一个数据项,最多有两个子节点. 多叉树:(multiway tree)允许每个节点有更 ...

  2. 侯哥的Python分享

    侯哥语录 我曾经是一个职业教育者,现在是一个自由开发者.我希望我的分享可以和更多人一起进步.分享一段我喜欢的话给大家:"我所理解的自由不是想干什么就干什么,而是想不干什么就不干什么.当你还没 ...

  3. GoJS学习笔记

    GoJS 和 GO 语言没有关系,它是一个用来创建交互式图表的 JavaScript 库. 基础概念 GraphObject 是所有图形是抽象基类,基本上 GoJS 中,万物皆 GraphObject ...

  4. oracle 12C利用dbca建库13步

    oracle用户登录然后命令行执行:dbca 如果没有此命令可以用:find / -name "dbca"查到后执行. 1.选择Create a database 2.选择Adva ...

  5. 『Candies 差分约束系统』

    差分约束系统 我们先来认识一下差分约束系统鸭! 差分约束系统是一种特殊的\(n\)元一次不等式组,它包含了\(n\)个变量\(x_1-x_n\)以及\(m\)个不等式(约束条件).其中每一个不等式形如 ...

  6. Mac电脑C语言开发的入门帖

    本文是写给Mac电脑开发新手的入门帖,诸神请退散. C语言 C语言可说是电脑环境中的"镇国神器",从发明至今,虽然C语言的使用者缓慢的减少,但从当前市场应用情况看,尚无一台电脑能够 ...

  7. 漫画:全面理解java.lang.IllegalArgumentException及其可用性设计

    经过一段时间的学习与实践,飞鸟已经可以独力解决一些问题.小鱼就让飞鸟讲述一些遇到的问题和解决过程. 报错日志: 这个产生的原因是我覆盖Collections.sort的Comparator方法的时候 ...

  8. JavaScript面向对象--继承 (超简单易懂,小白专属)

    一.继承的概念 子类共享父类的数据和方法的行为,就叫继承. 二.E55如何实现继承?探索JavaScript继承的本质 2.1构造函数之间的"复制粘贴" 第一条路是通过构造函数来继 ...

  9. ELK-Elasticsearch安装

    1.安装JDK必须安装JDK并且要求版本至少是1.8以上包含1.8的版本. 2.创建 es 用户这里需要注意的是,es 规定 root 用户不能启动 es,所以需要创建一个用户来启动 es # 创建用 ...

  10. web缓存策略之HTTP缓存大全

    一. web缓存总分类 数据库数据缓存 Web应用,特别是SNS类型的应用,往往关系比较复杂,数据库表繁多,如果频繁进行数据库查询,很容易导致数据库不堪重荷.为了提供查询的性能,会将查询后的数据放到内 ...