当前位置: 首页 > news >正文

太原网站建设 世纪优创网上商城推广方法

太原网站建设 世纪优创,网上商城推广方法,乐清外贸网站建设,中国房地产新闻前言#xff1a;如果在接口的声明方法中鼠标右键没有Test的单元测试。 你的鼠标光标问题#xff1a;要在花括号范围内#xff01;#xff01;#xff01;#xff01; 数据库表是应⽤程序开发中的⼀个重要环节, 数据库表的设计往往会决定我们的应⽤需求是否能顺利实现, 甚… 前言如果在接口的声明方法中鼠标右键没有Test的单元测试。 你的鼠标光标问题要在花括号范围内 数据库表是应⽤程序开发中的⼀个重要环节, 数据库表的设计往往会决定我们的应⽤需求是否能顺利实现, 甚⾄决定我们的实现⽅式. 如何设计表以及这些表有哪些字段, 这些表存在哪些关系 也是⾮常重要的. 数据库表设计是依据业务需求来设计的. 如何设计出优秀的数据库表, 与经验有很⼤关系. 数据库表通常分两种: 实体表和关系表. 分析我们的需求, 图书管理系统相对来说⽐较简单, 只有两个实体: ⽤⼾和图书, 并且⽤⼾和图书之间没有关联关系表的具体字段设计, 也与需求有关. ⽤⼾表有⽤⼾名和密码即可(复杂的业务可能还涉及昵称, 年龄等资料) 图书表有哪些字段, 也是参考需求⻚⾯(通常不是⼀个⻚⾯决定的, ⽽是要对整个系统进⾏全⾯分析观察后定的) 一.图书管理系统引入数据库 1.引入数据库 2.添加依赖记得刷新 3.配置数据库日志 代码 spring:datasource:url: jdbc:mysql://127.0.0.1:3306/book_test?characterEncodingutf8useSSLfalseusername: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driver mybatis:configuration:map-underscore-to-camel-case: true #配置驼峰⾃动转换log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句 # 设置⽇志⽂件的⽂件名 logging:file:name: spring-book.log 4.创建对象bookInfo 代码 package com.example.demo.model;import lombok.Data; import java.math.BigDecimal;Data public class BookInfo{// 图书的唯一标识符private Integer id;// 图书的名称private String bookName;// 图书的作者private String author;// 图书的某种编号或库存数量这里假设为编号private Integer count;// 图书的价格private BigDecimal price;// 出版图书的出版社名称private String publish;// 图书的借阅状态。1表示图书可借阅2表示图书不可借阅private Integer status;// 图书借阅状态的中文描述用于更直观地展示图书的借阅情况private String statusCN;private Data createTime;private Data updateTime;}5.创建对象UserInfo package com.example.demo.model;import lombok.Data;import java.util.Date;Data public class UserInfo {private Integer id;private String userName;private String password;private Integer deleteFlag;private Date createTime;private Date updateTime; }6.创建接口声明方法。 package com.example.demo.mapper;import com.example.demo.model.UserInfo; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest;import static org.junit.jupiter.api.Assertions.*;Slf4j SpringBootTest class UserInfoMapperTest {Autowiredprivate UserInfoMapper userInfoMapper;Testvoid getInfoByName() {UserInfo userInfo userInfoMapper.getInfoByName(zhangsan);log.info(查询数据:{},userInfo);} } 1.创建用户登录的Service  代码 package com.example.demo.service;import com.example.demo.mapper.UserInfoMapper; import com.example.demo.model.UserInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;Service public class UserService {Autowiredprivate UserInfoMapper userInfoMapper;public UserInfo getUserInfoByName(String userName) {return userInfoMapper.getInfoByName(userName);} } 2.在controller层写后端UserController逻辑 package com.example.demo.controller;import com.example.demo.model.UserInfo; import com.example.demo.service.UserService; import jakarta.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;RestController RequestMapping(/user) public class UserController {Autowiredprivate UserService userService;RequestMapping(/login)public String login(String userName, String password, HttpSession session){if(!StringUtils.hasLength(userName) || !StringUtils.hasLength(password)){return 用户或密码为空!;}UserInfo userInfo userService.getUserInfoByName(userName);if (userInfonull){return 用户不存在;}//用户存在, 校验密码是否正确if (!password.equals(userInfo.getPassword())){return 密码错误;}//正确的情况session.setAttribute(user_session_key,userInfo);return ok;} }3.启动项目测试注意切换不用变成单元测试 根据数据库查看一下 二.写插入图书的后端逻辑代码 1.写插入图书的数据层接口 package com.example.demo.mapper;import com.example.demo.model.BookInfo; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Mapper;Mapper public interface BookMapper {/*** 插入图书*/Insert(insert into book_info (book_name, author, count, price, publish, status) values (#{bookName}, #{author}, #{count}, #{price}, #{publish}, #{status}))Integer insertBook(BookInfo bookInfo); }2.在controller中调用 代码 package com.example.demo.controller;import com.example.demo.model.BookInfo; import com.example.demo.service.BookService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.math.BigDecimal; import java.util.ArrayList; import java.util.List;Slf4j // 使用RestController注解将类标记为Spring MVC的控制器并且该类中所有方法的返回值都会自动转换为JSON或XML格式 RestController // 使用RequestMapping注解定义该控制器中所有请求的基础URL路径 RequestMapping(book) public class BookController {Autowiredprivate BookService bookService;/*** 添加图书*/RequestMapping(/addBook)public String addBook(BookInfo bookInfo){//校验参数log.info(添加图书, 接收到参数bookInfo: {}, bookInfo);if (!StringUtils.hasLength(bookInfo.getBookName())|| !StringUtils.hasLength(bookInfo.getAuthor())|| bookInfo.getCount()null|| bookInfo.getPrice()null|| !StringUtils.hasLength(bookInfo.getPublish())|| bookInfo.getStatus()null){return 输入参数不合法;}//添加图书try{Integer result bookService.insertBook(bookInfo);if (result 0){return ;}}catch (Exception e){log.error(添加图书异常, e: , e);}return 添加失败;}}3.调试成功 4. 编写增添图书的前端代码。 !DOCTYPE html html langenheadmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0title添加图书/titlelink relstylesheet hrefcss/bootstrap.min.csslink relstylesheet hrefcss/add.css/headbodydiv classcontainerdiv classform-inlineh2 styletext-align: left; margin-left: 10px;svg xmlnshttp://www.w3.org/2000/svg width40fill#17a2b8 classbi bi-book-half viewBox0 0 16 16pathdM8.5 2.687c.654-.689 1.782-.886 3.112-.752 1.234.124 2.503.523 3.388.893v9.923c-.918-.35-2.107-.692-3.287-.81-1.094-.111-2.278-.039-3.213.492V2.687zM8 1.783C7.015.936 5.587.81 4.287.94c-1.514.153-3.042.672-3.994 1.105A.5.5 0 0 0 0 2.5v11a.5.5 0 0 0 .707.455c.882-.4 2.303-.881 3.68-1.02 1.409-.142 2.59.087 3.223.877a.5.5 0 0 0 .78 0c.633-.79 1.814-1.019 3.222-.877 1.378.139 2.8.62 3.681 1.02A.5.5 0 0 0 16 13.5v-11a.5.5 0 0 0-.293-.455c-.952-.433-2.48-.952-3.994-1.105C10.413.809 8.985.936 8 1.783z //svgspan添加图书/span/h2/divform idaddBookdiv classform-grouplabel forbookName图书名称:/labelinput typetext classform-control placeholder请输入图书名称 idbookName namebookName/divdiv classform-grouplabel forbookAuthor图书作者/labelinput typetext classform-control placeholder请输入图书作者 idbookAuthor nameauthor //divdiv classform-grouplabel forbookStock图书库存/labelinput typetext classform-control placeholder请输入图书库存 idbookStock namecount//divdiv classform-grouplabel forbookPrice图书定价/labelinput typenumber classform-control placeholder请输入价格 idbookPrice nameprice/divdiv classform-grouplabel forbookPublisher出版社/labelinput typetext idbookPublisher classform-control placeholder请输入图书出版社 namepublish //divdiv classform-grouplabel forbookStatus图书状态/labelselect classcustom-select idbookStatus namestatusoption value1 selected可借阅/optionoption value2不可借阅/option/select/divdiv classform-group styletext-align: rightbutton typebutton classbtn btn-info btn-lg onclickadd()确定/buttonbutton typebutton classbtn btn-secondary btn-lg onclickjavascript:history.back()返回/button/div/form/divscript typetext/javascript srcjs/jquery.min.js/scriptscriptfunction add(){$.ajax({url: /book/addBook,type: post,data: $(#addBook).serialize(),success: function(result){if(resultok){alert//添加成功alert(添加成功);location.href book_list.html;}else{alert(result);}}});}/script /body/html 三.实现图书列表查询未完成 实现分页查询有插件这里自己实现修改太多太麻烦懒得写了 1.model定义一个类用来接受参数 代码 package com.example.demo.model;import lombok.Data;Data public class PageRequest {private Integer pageNum;private Integer pageSize 10;private Integer offset;public Integer getOffset() {return (pageNum-1) * pageSize;} }2.在Mapper实现接口 Select(select * from book_info limit #{offset}, #{limit}) ListBookInfo queryBookByPage(Integer offset, Integer limit); 3.在Service中写 public ListBookInfo getBookListByPage(PageRequest pageRequest){return bookMapper.queryBookByPage(pageRequest.getOffset(),pageRequest.getPageSize());} 4.在Controller写后端逻辑 使用枚举类来表示图书的状态。
http://www.hkea.cn/news/14516508/

相关文章:

  • 做网站怎么把导航每个页面都有重庆长寿网站设计公司推荐
  • 专业定制网站建设哪里有苏州微网站制作
  • 电子商务网站建设选修课房屋装修设计app
  • 深圳英文网站制作注册公司流程和费用最新
  • 烟台门户网站简单的html网页模板
  • 微信官方网站公众平台大型网站设计首页实例
  • 阳江市网站建设wordpress 订阅推送
  • 自学做网站可以吗二建报考条件
  • 建设厅网站生成案卷生成不了潍坊科技学院
  • 公司推广网站茂名手机网站制作
  • 长岭建设局网站企业网站建设费用会计分录
  • 攸县做网站的网站别人能打开我打不开
  • 网站首页大图轮播最专业的佛山网站建设价格
  • 黔东南州住房和城乡建设局网站网站建设和网站设计一样吗
  • 徐州网站建设新闻网站建设汇报ppt
  • 如何做阿里巴巴的网站湖北潜江资讯网
  • 个人网站可以做淘宝客嘛科技资讯网站有哪些
  • dw做的网站成品美工培训机构
  • 建设网站需要考虑什么windows2008做网站
  • 家政公司响应式网站建设案例手机网站设计推荐
  • 凯里网站开发gzklyy阜宁县网站建设
  • 建设大学网站服务网络营销的特点包括哪些?
  • 建设银行官方网站下载安装网页制作与网站开发 实验报告
  • 精品网站建设比较好施工企业管理会计实施方案
  • html网站建设案例网站开发多少钱农民
  • 外国网站怎么做关于门户网站建设
  • 电子政务与网站建设工作总结如何把网站做跳转浏览器链接地址
  • 网站的第二域名怎么用安徽制作网站专业公司
  • 网站建设合同 附件网站建设课程设计总结
  • 装修公司做网站有用吗摄影网站设计代码