书城项目

登录

dao

接口:UserDao

  1. Users login(String username,String password);

实现:UserDaoImpl

  1. QueryRunner queryrunner = new QueryRunner();
  2. Connection connection = createConnection();
  3. Users query = null;
  4. String sql = "select * from users where username=? and password=?";
  5. query = queryrunner.query(connection,sql,new BeanHandler<>(Users.class),username,password);
  6. return query;

services

接口:UserServices 同UserDao代码一致

实现:UserServicesImpl

  1. UserDao userdao = new UserDaoImpl();
  2. return userdao.login(username,password)

servlet

UserServlet:service

  1. req.setCharacterEncoding("e-8");
  2. String reqkey = req.getParameter("reqkey");
  3. Method method= getClass().getDeclaredMethod(reqkey,HttpServletRequest.class,HttpServletResonse.class);
  4. method.setAccessible(true);
  5. method.invoke(this,req,resp);

UserServlet:tologin

  1. //接收数据
  2. String username = req.getParameter("username");
  3. String password = req.getParameter("password");
  4. //调取方法
  5. UserServicesImpl userservices = new UserServicesImpl();
  6. User users = userservices.login(username,password);
  7. //根据结果跳转页面
  8. if(users==null){
  9. req.getRequestDispatcher("/pages/user/login.html").forword(req,resp);
  10. }else{
  11. req.getRequestDispatcher("/pages/user/login_success.html").forword(req,resp);
  12. }

注册

dao

接口:UserDao

  1. boolean regist(Users users);

实现:UserDaoImpl

  1. QueryRunner queryrunner = new QueryRunner();
  2. Connection connection = createConnection();
  3. int i = 0;
  4. String sql = "insert into users values(null,?,?,?)";
  5. i=queryRunner.update(connection,sql,user.getUsername(),user.getPassword(),user.getEmail);
  6. return i;

services

接口:UserServices 同UserDao代码一致

实现:UserServicesImpl

  1. return userdao.regist(Users);

servlet

UserServlet:toregist

  1. //接收数据
  2. Users users = new Users();
  3. resp.setContentType("text/html;charset=utf-8");
  4. PrintWriter writer = req.getWriter();
  5. Map<String, String[]> parameterMap = req.getParameterMap();
  6. BeanUtils.populate(users,parameterMap);
  7. //调取方法
  8. boolean b = userservices.regist(Users);
  9. //根据结果跳转页面
  10. if(b){
  11. writer.writer("<script type='text/javascript'>alert('注册成功');location.href='/pages/user/regist_success.html'</script>");
  12. }else{
  13. writer.writer("<script type='text/javascript'>alert('注册失败');location.href='/pages/user/regist.html'</script>");
  14. }

查询图书

dao

接口:BookDao

  1. List<Books> selectbooks();

实现:BookDaoImpl

  1. QueryRunner queryrunner = new QueryRunner();
  2. Connection connection = createConnection();
  3. List<Books> booksList = null;
  4. String sql = "select * from books";
  5. booksList = queryRunner.query(connection,sql,new BeanListHandle<>(Books.class));

services

接口:BookServices 同BookDao

实现:BookServicesImpl

  1. BookDaoImpl bookDao = new BookDaoImpl();
  2. return bookDao.selectbooks();

servlet

BookServlet:selectbooks

  1. List<Books> selectbooks = bookServices.selectbooks();

添加图书

dao

接口:BookDao

  1. int insertbook(Books books);

实现:BookDaoImpl

  1. Connection connection = createConnection();
  2. int i = 0;
  3. String sql = "insert into books values(null,?,?,?,?,?,?)";
  4. i = queryRunner.update(connection,sql,books.getTitle(),books.getAuthor(), books.getPrice(), books.getSales(), books.getStock(), "/static/uploads/huozhe.jpg")
  5. return i;

services

接口:BookServices 同BookDao

实现:BookServicesImpl

  1. return bookDao.insertbook(books);

servlet

BookServlet:addbooks

  1. Books book = new Books();
  2. Map<String, String[]> parameterMap = req.getParameterMap();
  3. BeanUtils.populate(book,parameterMap);
  4. int i = bookServices.insertbook(book);
  5. if(i>0){
  6. resp.sendRedirect("/pages/manager/bookServlet?reqkey=selectbooks");
  7. }else{
  8. resp.sendRedirect("/pages/manager/book_add.html");
  9. }

图书列表展示

dao

接口:BookDao

  1. List<Books> selectbooks();

实现:BookDaoImpl

  1. public List<Books> selectbooks(){
  2. String sql = "select * from books";
  3. List<Books> booksList = queryRunner.query(connection,sql,new BeanListHandler<>(Books.class));
  4. return booksList;
  5. }

services

接口:BookServices

实现:BookServicesImpl

servlet

BookServlet:selectbooks

  1. List<Books> selectbooks = bookServices.selectbooks();
  2. req.serAttribute("blist",selectbooks);
  3. processTemplate("manager/book_manager",req,resp);

查询列表id

dao

接口:BookDao

  1. Books findById(int bookId);

实现:BookDaoImpl

  1. String sql = "select * from books where id=?";
  2. Books books = queryRunner.query(connection,sql,new BeanHandler<>(Books.class),bookId);
  3. return books;

services

servlet

BookServelet:findbybookid

  1. String bookid = req.getParameter("bookid");
  2. if(bookid = null){
  3. throw new RuntimeException("bookid is null");
  4. }
  5. Books id = bookServices.findById(Integer.parseInt(bookid));
  6. req.setAttribute("mybook",id);
  7. processTemplate("manager/book_edit",req,resp);

修改图书

dao

接口:BookDao

  1. int updatebook(Books books);

实现:BookDaoImpl

  1. String sql = "update books set title=?,author=?,price=?,sales=?,stock=? where id=?";
  2. int i = queryRunner.update(connection,sql,books.getTitle(),books.getAuthor(),books.getPrice,books.getSales(),books.getStock(),books.getId());
  3. return i;

services

servlet

BookServelet:updatebook

  1. Books books = new Books();
  2. Map<String, String[]> parameterMap = req.getParameterMap();
  3. BeanUtils.populate(books,parameterMap);
  4. int i = bookServices.updatebook(books);
  5. if(i>0){
  6. resp.sendRedirect("/pages/manager/bookServlet?reqkey=selectbooks");
  7. }else{
  8. resp.sendRedirect("/pages/manager/bookServlet?reqkey=findbybooks&bookid="+books.getId());
  9. }

删除图书

dao

接口:BookDao

  1. int deletebook(int bookId);

实现:BookDaoImpl

  1. String sql = "delete from books where id =?";
  2. int i = queryRunnering.update(connection,sql,bookId);
  3. return i;

services

servlet

BookServlet:deletebyid

  1. String id = req.getParameter("bookid");
  2. if(id == null){
  3. throw new RuntimeException("bookid is null");
  4. }
  5. int i = bookServices.deletebook(Integer.parseInt(id));
  6. resp.sendRedirect("/pages/manager/bookServlet?reqkey=selectbooks");

用java实现书城项目(简单增删改查2)的更多相关文章

  1. Java连接Zookeeper以及书写简单增删改查的方法

    Java连接Zookeeper以及书写简单增删改查的方法   摘要:本笔记主要记录了使用IDEA创建一个Maven项目并使用Maven配置文件下载Zookeeper连接驱动,连接云服务器的Zookee ...

  2. Mybatis实现简单增删改查

    Mybatis的简单应用 学习内容: 需求 环境准备 代码 总结: 学习内容: 需求 使用Mybatis实现简单增删改查(以下是在IDEA中实现的,其他开发工具中,代码一样) jar 包下载:http ...

  3. ado.net的简单数据库操作(三)——简单增删改查的实际应用

    果然,在犯困的时候就该写写博客,写博客就不困了,哈哈! 上篇我记录了自己的SqlHelper的开发过程,今天记录一下如何使用这个sqlhelper书写一个具有简单增删改查的小实例啦. 实例描述:在数据 ...

  4. Redis:五种数据类型的简单增删改查

    Redis简单增删改查例子 例一:字符串的增删改查 #增加一个key为ay_key的值 127.0.0.1:6379> set ay_key "ay" OK #查询ay_ke ...

  5. 国产化之路-统信UOS + Nginx + Asp.Net MVC + EF Core 3.1 + 达梦DM8实现简单增删改查操作

    专题目录 国产化之路-统信UOS操作系统安装 国产化之路-国产操作系统安装.net core 3.1 sdk 国产化之路-安装WEB服务器 国产化之路-安装达梦DM8数据库 国产化之路-统信UOS + ...

  6. java对xml文件做增删改查------摘录

    java对xml文件做增删改查 package com.wss; import java.io.File;import java.util.ArrayList;import java.util.Lis ...

  7. 使用java对sql server进行增删改查

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...

  8. Java API实现Hadoop文件系统增删改查

    Java API实现Hadoop文件系统增删改查 Hadoop文件系统可以通过shell命令hadoop fs -xx进行操作,同时也提供了Java编程接口 maven配置 <project x ...

  9. .net core项目搭建swagger接口实现简单增删改查

    .net core搭建swagger 1,新建立.net core项目(这里不再细说) 2,引入NuGet程序包 3,建立项目之后在Startup类中配置swagger 这里我直接把代码贴出来: 在C ...

  10. 【ES】ElasticSearch初体验之使用Java进行最基本的增删改查~

    好久没写博文了, 最近项目中使用到了ElaticSearch相关的一些内容, 刚好自己也来做个总结. 现在自己也只能算得上入门, 总结下自己在工作中使用Java操作ES的一些小经验吧. 本文总共分为三 ...

随机推荐

  1. 【Jmeter】Request1输出作为Request2输入-后置处理器

    [Jmeter]基础介绍-详细 接上文,继续介绍Jmeter,本文关注点为如何解决上文中提到的第一个问题,即: 需要实现Request1的返回作为Request2的RequestBody或Header ...

  2. Python 实现SynFlood洪水攻击

    Syn-Flood攻击属于TCP攻击,Flood类攻击中最常见,危害最大的是Syn-Flood攻击,也是历史最悠久的攻击之一,该攻击属于半开放攻击,攻击实现原理就是通过发送大量半连接状态的数据包,从而 ...

  3. css 修改复选框的样式

    效果图: 实现代码如下: /* 选中input标签类型为复选框的 */ input[type="checkbox"] { width: 16px; height: 16px; ve ...

  4. 【奶奶看了都会】ComfyUI+SVD制作AI视频教程,附效果演示

    AI一天,人间一年 大家好啊,我是小卷,最近AI绘画又发展出一些新玩意了,小卷因为工作的关系有一个月没关注AI的发展了,都有点跟不上版本节奏了... 1.comfyui的使用效果 今天给大家介绍下AI ...

  5. 数学和CNN里面的卷积和互相关

    卷积和互相关 nndl上CNN这章的互相关讲的比较晦涩,简单辨析一下书上的互相关 A.1 数学意义上的卷积就是将卷积核进行翻转之后再进行我们熟悉CNN上的卷积运算 同时互相关就是不将卷积核翻转直接CN ...

  6. webrtc终极版(题外话)辛苦写文章分享,竟然遇到喷子狂喷,写篇文章回怼下,顺便发表下面对喷子的处理方式

    webrtc终极版(题外话)辛苦写文章分享,竟然遇到喷子狂喷,写篇文章回怼下,顺便发表下面对喷子的处理方式 第一篇文章发过后,出人意料的是,收到了博客园某一位用户的狂喷[注:本系列文章会同步发布到cs ...

  7. 如何使用Ghost对UEFI+GPT+WIN10进行备份还原?

    以前BIOS兼容模式下用MBR分区表来备份还原系统使用Ghost很轻松就可以完成系统还原和备份,对于新版BIOS及支持GPT+UEFI快速启动的系统来说又应该如何备份还原呢?答案依旧是Ghost,只不 ...

  8. Delphi TStringList 有趣的CommaText和DelimitedText

    CommaText 在没有指定StrictDelimiter=true的情况下,当列表中项中 包含 空格和逗号的时候就默认的 在这个字符串上面 增加 双引号 很智能吧 例子1: var MyList: ...

  9. [Java][并发编程]AQS以及其相关同步器的源码解析

    AQS以及其相关同步器的源码解析 概念 AQS(AbstractQueuedSynchronizer)抽象的队列同步器.是用来构建锁或者其他同步器组件的重量级基础框架以及整个JUC体系的基石.通过内置 ...

  10. JS Leetcode 530. 二叉搜索树的最小绝对差 题解分析,再次了解中序遍历

    壹 ❀ 引 本题来自LeetCode 783. 二叉搜索树节点最小距离,题目描述如下: 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 . 示例 1: 输入:root ...