导入包---实体类------数据库连接----数据库操作----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. [Swift]LeetCode756. 金字塔转换矩阵 | Pyramid Transition Matrix

    We are stacking blocks to form a pyramid. Each block has a color which is a one letter string, like ...

  2. postgresql 删除库的时候报错database "temp_test_yang" is being accessed by other users

    删除库的时候报错 ERROR: database "temp_test_yang" is being accessed by other usersDETAIL: There ar ...

  3. Spring高级装配bean

    目录 spring profile 条件化的bean声明 自动装配与歧义性 bean的作用域 Spring表达式语言 一.环境与profile 配置profile  bean 在软件开发的时候,有一个 ...

  4. Volatile的那些事

    上一篇中,我们了解了Synchronized关键字,知道了它的基本使用方法,它的同步特性,知道了它与Java内存模型的关系,也明白了Synchronized可以保证"原子性",&q ...

  5. BBS论坛(二十一)

    21.1.编辑轮播图功能完成 (1)cms_banners.html 把属性绑定到<tr>上面,方便找到各属性的值 <tbody> {% for banner in banne ...

  6. Qt之自定义检索框

    1.效果展示 今天这篇文章主要讲解的是自定义搜索框,不仅仅支持搜索,而且可以支持搜索预览,具体请看效果图1.网上也有一些比较简单明了的自定义搜索框,比如Qt之自定义搜索框,讲的也比较详细,不过本文的侧 ...

  7. CentOS 7 安装 JAVA环境(JDK 1.8)

    1.打开url选择jdk1.8下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htm ...

  8. 你的第一个Django程序

    本文使用Pycharm.Django 2.0.9.Python 3.6环境,本文大纲 建立Django项目 建立页面 什么是URLconf和ROOT_URLCONF Django怎么处理URL请求 关 ...

  9. HBase学习-HBase原理

    1.系统架构 1.1 图解   从HBase的架构图上可以看出,HBase中的组件包括Client.Zookeeper.HMaster.HRegionServer.HRegion.Store.MemS ...

  10. 【面试】我是如何面试别人List相关知识的,深度有点长文