书城项目

登录

dao

接口:UserDao

Users login(String username,String password);

实现:UserDaoImpl

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

services

接口:UserServices 同UserDao代码一致

实现:UserServicesImpl

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

servlet

UserServlet:service

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

UserServlet:tologin

//接收数据
String username = req.getParameter("username");
String password = req.getParameter("password"); //调取方法
UserServicesImpl userservices = new UserServicesImpl();
User users = userservices.login(username,password); //根据结果跳转页面
if(users==null){
req.getRequestDispatcher("/pages/user/login.html").forword(req,resp);
}else{
req.getRequestDispatcher("/pages/user/login_success.html").forword(req,resp);
}

注册

dao

接口:UserDao

boolean regist(Users users);

实现:UserDaoImpl

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

services

接口:UserServices 同UserDao代码一致

实现:UserServicesImpl

return userdao.regist(Users);

servlet

UserServlet:toregist

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

查询图书

dao

接口:BookDao

List<Books> selectbooks();

实现:BookDaoImpl

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

services

接口:BookServices 同BookDao

实现:BookServicesImpl

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

servlet

BookServlet:selectbooks

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

添加图书

dao

接口:BookDao

int insertbook(Books books);

实现:BookDaoImpl

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

services

接口:BookServices 同BookDao

实现:BookServicesImpl

 return bookDao.insertbook(books);

servlet

BookServlet:addbooks

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

图书列表展示

dao

接口:BookDao

List<Books> selectbooks();

实现:BookDaoImpl

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

services

接口:BookServices

实现:BookServicesImpl

servlet

BookServlet:selectbooks

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

查询列表id

dao

接口:BookDao

Books findById(int bookId);

实现:BookDaoImpl

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

services

servlet

BookServelet:findbybookid

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

修改图书

dao

接口:BookDao

 int updatebook(Books books);

实现:BookDaoImpl

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

services

servlet

BookServelet:updatebook

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

删除图书

dao

接口:BookDao

int deletebook(int bookId);

实现:BookDaoImpl

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

services

servlet

BookServlet:deletebyid

String id = req.getParameter("bookid");
if(id == null){
throw new RuntimeException("bookid is null");
}
int i = bookServices.deletebook(Integer.parseInt(id));
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. python2排序

    python list cmp排序 对于list的排序一般使用cmp 示例: sorted(xxlist, cmp=self.sortFunc) def sortFunc(self, a, b): r ...

  2. vim 从嫌弃到依赖(5)——普通模式的一些操作

    通过前面几章内容的铺垫,基本已经介绍完了普通模式的大部分内容,按照进度下面会依次介绍插入模式.命令模式.选择模式的一些操作.根据不同模式提供功能的多少和使用频率,篇幅会有长有短.本来这篇文章应该介绍插 ...

  3. TienChin 开篇-运行 RuoYiVue

    开篇 目的: 让大家随心所欲的 DIY 若依的脚手架 不会涉及到太多基础知识 踊跃提问(不懂得地方大家提问我会根据提问,后续一一解答疑惑) 下载 RuoYiVue Gitee: https://git ...

  4. 语义检索系统之排序模块:基于ERNIE-Gram的Pair-wise和基于RocketQA的CrossEncoder训练的单塔模型

    语义检索系统之排序模块:基于ERNIE-Gram的Pair-wise和基于RocketQA的CrossEncoder训练的单塔模型 文本匹配任务数据每一个样本通常由两个文本组成(query,title ...

  5. 深度学习应用篇-自然语言处理[10]:N-Gram、SimCSE介绍,更多技术:数据增强、智能标注、多分类算法、文本信息抽取、多模态信息抽取、模型压缩算法等

    深度学习应用篇-自然语言处理[10]:N-Gram.SimCSE介绍,更多技术:数据增强.智能标注.多分类算法.文本信息抽取.多模态信息抽取.模型压缩算法等 1.N-Gram N-Gram是一种基于统 ...

  6. Nmap 扫描并生成HTML报告

    Nmap扫描器,支持生成扫描报告,配合转换模板,可实现自定义转换报告,非常方便. 扫描报告,可以生成如下格式,这是Nmap中自带的格式. nmap -PR -oX lyshark.xml 192.16 ...

  7. zblog文章采集发布插件-免费下载

    推荐一款可以自动采集网页文章,并发布到zblog系统网站的zblog采集发布插件,支持简数采集器,火车头数据采集器,八爪鱼文章采集器,后羿采集器等...... zblog采集发布插件使用教程如下: 1 ...

  8. .NET桌面程序如何设置任务栏图标右键菜单中的名称

    右键任务栏中应用程序图标时会显示程序名称,例如: 这里显示的并不是程序文件名DingTalk,而是文件属性中详细信息选显卡下的"文件说明". 在.NET桌面程序中,是通过修改程序集 ...

  9. 3.4 CSP-J 补赛游寄

    3.4 CSP-J 补赛游寄 Day -? 听说要去打比赛. Day -7 今天家长会,老师公布成绩 /fn/fn/fn.政治考废了,然后其他都挺好. 语文 $ 95 $,数学 $ 118 $,英语 ...

  10. Git操作--Pycharm

    声明: 1)仅作为个人学习,如有冒犯,告知速删! 2)不想误导,如有错误,不吝指教! 一--在idea中配置git: 1. 更改git的安装路径:file-->settings,找到versio ...