导入包---实体类------数据库连接----数据库操作----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. TCP的三次握手与四次挥手(个人总结)

    序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生:给字节编上序号后,就给每一个报文段指派一个序号:序列号seq就是这个报文 ...

  2. VSCode与Deepin资源管理器冲突

    解决方式: xdg-mime default dde-file-manager.desktop inode/directory 此外,网上有较多推荐(在deepin 15.8版本上测试无效): gvf ...

  3. 你还在 Select * 吗?

    应用程序慢如牛,原因多多,可能是网络的原因.可能是系统架构的原因,还有可能是数据库的原因. 那么如何提高数据库SQL语句执行速度呢?有人会说性能调优是数据库管理员(DBA)的事,然而性能调优跟程序员们 ...

  4. java线程阻塞唤醒的四种方式

    java在多线程情况下,经常会使用到线程的阻塞与唤醒,这里就为大家简单介绍一下以下几种阻塞/唤醒方式与区别,不做详细的介绍与代码分析 suspend与resume Java废弃 suspend() 去 ...

  5. scala的reduce

    spark 中的 reduce 非常的好用,reduce 可以对 dataframe 中的元素进行计算.拼接等等.例如生成了一个 dataframe : //配置spark def getSparkS ...

  6. log4cplus使用(三)-日志重定向

    本文讲述的是log4cplus日志输出到qt widget,封装了serverSocket.     log4cplus支持用户自定义输出设备,只需要继承自Appender,或者Appender子类, ...

  7. 『ice 离散化广搜』

    ice(USACO) Description Bessie 在一个冰封的湖面上游泳,湖面可以表示为二维的平面,坐标范围是-1,000,000,000..1,000,000,000. 湖面上的N(1 & ...

  8. php_D3_“简易聊天室 ”实现的关键技术 详解

                      PHP+MySQL实现Internet上一个简易聊天室的关键技术  系统目标: 聊天室使用数据库汇集每个人的发言,并可将数据库内的发言信息显示在页面,让每个用户都可 ...

  9. consistent hash(一致性哈希算法)

    一.产生背景 今天咱不去长篇大论特别详细地讲解consistent hash,我争取用最轻松的方式告诉你consistent hash算法是什么,如果需要深入,Google一下~. 举个栗子吧: 比如 ...

  10. 痞子衡嵌入式:常用的数据差错控制技术(1)- 重复校验(Repetition Code)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式里数据差错控制技术-重复校验. 在嵌入式应用里,除了最核心的数据处理外,我们还会经常和数据传输打交道.数据传输需要硬件传输接口的支持 ...