资源下载:https://download.csdn.net/download/weixin_44893902/45604256

练习点设计: 删除、新增

一、语言和环境

  1. 实现语言:JAVA语言。
  2. 环境要求:MyEclipse/Eclipse + Tomcat + MySql。
  3. 使用技术:Jsp+Servlet+JavaBeanSpringMVC + Spring + Mybatis

二、实现功能

随着银行卡越来越多,办卡人员日益增多,特需要银行卡系统:
1.首页默认显示所有银行卡信息,默认按照银行卡余额升序,如图1所示。

2.用户点击删除,则弹出提示框,用户点击确定后,删除选中数据并显示最新数据,如图3和图4所示。

3.用户点击“添加银行卡”操作链接,跳转到银行卡添加界面,填写完相关信息后点击添加按钮,增加银行卡信息数据到数据库,且页面跳转到列表页面展示最新数据,如图6和图7所示。

三、数据库设计

1.创建数据库(card_db)。
2.创建数据表(tb_card),结构如下。

字段名 说明 字段类型 长度 备注
id 编号 int 主键,自增,增量为1
name 持卡人姓名 varchar 50 不能为空
sex 持卡人性别 Char 1 不能为空
cardNo 卡号 int 不能为空
balance 银行卡余额 Double 不能为空
level 银行卡级别 int 1普卡 2 白金卡 3黑卡

四、推荐实现步骤

1.JSP版本的实现步骤如下:

(1)按以上数据库要求建库、建表,并添加测试数据。
(2)创建Web工程并创建各个包,导入工程所需的jar文件。
(3)创建实体类。
(4)创建Servlet获取用户不同的请求,并将这些请求转发至业务处理层相应的业务方法。
(5)创建业务处理层,在其中定义业务方法实现系统需求,在这些业务方法中需要执行DAO方法。
(6)创建BaseDAO工具类,使用JDBC完成数据表数据的查询、删除和添加。
(7)编写JSP页面,展示数据的查询结果。

2.SSM版本的实现步骤如下:

(1)创建数据库和数据表,添加测试数据(至少添加5条测试数据)。
(2)创建Web工程并创建各个包,导入工程所需的jar文件。
(3)添加相关SSM框架支持。
(4)配置项目所需要的各种配置文件(mybatis配置文件、spring配置文件、springMVC配置文件)。
(5)创建实体类。
(6)创建MyBatis操作数据库所需的Mapper接口及其Xml映射数据库操作语句文件。
(7)创建业务逻辑相应的接口及其实现类,实现相应的业务,并在类中加入对DAO/Mapper的引用和注入。
(8)创建Controller控制器类,在Controller中添加对业务逻辑类的引用和注入,并配置springMVC配置文件。
(9)创建相关的操作页面,并使用CSS对页面进行美化。
(10)实现页面的各项操作功能,并在相关地方进行验证,操作要人性化。
(11)调试运行成功后导出相关的数据库文件并提交。

五、实现代码

1、MySQL数据库

card_db

2、项目Java代码

目录结构

Card

JAR包:

src

com.mhys.crm.controller

CardContrtoller.java

package com.mhys.crm.controller;import java.util.List;import javax.annotation.Resource;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;import com.mhys.crm.entity.TbCard;
import com.mhys.crm.service.impl.CardService;@Controller
public class CardContrtoller {@ResourceCardService cardService;// 查询方法@RequestMapping("/cardsList")public String cardsList(Model model) {List<TbCard> cardList = cardService.selectAll();model.addAttribute("cardList", cardList);return "/card";}// 跳转添加页面的方法@RequestMapping("/insertInto")public String insert() {return "addCard";}// 添加方法@RequestMapping("/insertCard")public String insertCard(TbCard tbCard) {int insertCard = cardService.insertCard(tbCard);return "redirect:/cardsList.do";}// 删除方法@RequestMapping("/deleteCard")public String deleteCard(int id) {int deletCard = cardService.deleteCard(id);return "redirect:/cardsList.do";}}

com.mhys.crm.dao

TbCardMapper.java

package com.mhys.crm.dao;import java.util.List;import com.mhys.crm.entity.TbCard;public interface TbCardMapper {int deleteByPrimaryKey(Integer id);int insert(TbCard record);List<TbCard> selectAll();}

TbCardMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.mhys.crm.dao.TbCardMapper"><resultMap id="BaseResultMap" type="com.mhys.crm.entity.TbCard"><id column="id" property="id" jdbcType="INTEGER" /><result column="name" property="name" jdbcType="VARCHAR" /><result column="sex" property="sex" jdbcType="VARCHAR" /><result column="cardNo" property="cardno" jdbcType="VARCHAR" /><result column="balance" property="balance" jdbcType="VARCHAR" /><result column="level" property="level" jdbcType="VARCHAR" /></resultMap><delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">delete from tb_cardwhere id = #{id,jdbcType=INTEGER}</delete><insert id="insert" parameterType="com.mhys.crm.entity.TbCard">insert into tb_card (id, name, sex,cardNo, balance, level)values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR},#{sex,jdbcType=VARCHAR},#{cardno,jdbcType=VARCHAR}, #{balance,jdbcType=VARCHAR}, #{level,jdbcType=VARCHAR})</insert><select id="selectAll" resultMap="BaseResultMap">select id, name, sex, cardNo, balance, levelfrom tb_card</select>
</mapper>

com.mhys.crm.entity

TbCard.java

package com.mhys.crm.entity;public class TbCard {private Integer id;private String name;private String sex;private String cardno;private String balance;private String level;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name == null ? null : name.trim();}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex == null ? null : sex.trim();}public String getCardno() {return cardno;}public void setCardno(String cardno) {this.cardno = cardno == null ? null : cardno.trim();}public String getBalance() {return balance;}public void setBalance(String balance) {this.balance = balance == null ? null : balance.trim();}public String getLevel() {return level;}public void setLevel(String level) {this.level = level == null ? null : level.trim();}
}

com.mhys.crm.service.impl

CardService.java

package com.mhys.crm.service.impl;import java.util.List;import com.mhys.crm.entity.TbCard;public interface CardService {//查询List<TbCard> selectAll();//添加int insertCard(TbCard tbCard);//删除int deleteCard(int id);}

CardServiceImpl.java

package com.mhys.crm.service.impl;import java.util.List;import javax.annotation.Resource;import org.springframework.stereotype.Service;import com.mhys.crm.dao.TbCardMapper;
import com.mhys.crm.entity.TbCard;
@Service
public class CardServiceImpl implements CardService {@Resource TbCardMapper mapper;@Overridepublic List<TbCard> selectAll() {List<TbCard> selectAll=mapper.selectAll();return selectAll;}@Overridepublic int insertCard(TbCard tbCard) {int addCard=mapper.insert(tbCard);return addCard;}@Overridepublic int deleteCard(int id) {int delCard=mapper.deleteByPrimaryKey(id);return delCard;}}

mybatis

sqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><typeAliases><package name="com.mhys.crm.entity"/></typeAliases></configuration>

spring

applicationContext-dao.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd"><!-- 指定spring容器读取database.properties文件 --><context:property-placeholder location="classpath:database.properties" /><!-- 将连接池注册到bean容器中 --><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /></bean><!-- 配置SqlSessionFactory --><bean class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 设置MyBatis核心配置文件 --><property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" /><!-- 设置数据源 --><property name="dataSource" ref="dataSource" /></bean><!-- 配置Mapper扫描 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 设置Mapper扫描包 --><property name="basePackage" value="com.mhys.crm.dao" /></bean></beans>

applicationContext-service.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd"><!-- 配置Service扫描 --><context:component-scan base-package="com.mhys.crm" /><!-- 配置事务管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"></property></bean><!-- 开启注解方式管理AOP事务 --><tx:annotation-driven transaction-manager="transactionManager" />
</beans>

spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"><!-- 配置Controller扫描 --><context:component-scan base-package="com.mhys.crm" /><!-- 配置注解驱动 --><mvc:annotation-driven /><!-- 配置视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 前缀 --><property name="prefix" value="/WEB-INF/jsp/" /><!-- 后缀 --><property name="suffix" value=".jsp" /></bean></beans>

jdbc.properties

jdbc.url=jdbc:mysql://localhost:3306/card_db?useUnicode=true&characterEncoding=UTF-8&useSSL=false
jdbc.username=root
jdbc.password=123456
jdbc.driver=com.mysql.jdbc.Driver

WebContent

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"><display-name>Card</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/applicationContext-*.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/spring-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
</web-app>

JSP

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path;
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>XXX系统</title>
</head>
<body>
<script>window.location.href="<%=basePath%>/cardsList.do";
</script>
</body>
</html>

addCard.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<head>
<meta charset="utf-8">
<title>录入信息</title>
<style type="text/css">
table {margin: auto;text-align: center;
}.button {margin: auto;
}
</style>
</head>
<body><form action="insertCard.do"><table border="1" cellspacing="0" cellpadding="5"><tr><tdstyle="background-color: #42B983; color: white; text-align: center;"colspan="2">新增银行卡信息</td></tr><tr><td width="450px"><input type="hidden" name="id"value="${card.id}"> 办卡人姓名</td><td width="450px"><input type="text" name="name"value="${card.name}"></td></tr><tr><td width="450px">办卡人性别</td><td width="450px"><input type="radio" name="sex" value="1"<c:if test="${card.sex==1}">checked="checked"</c:if>>男 <inputtype="radio" name="sex" value="0"<c:if test="${card.sex!=1}">checked="checked"</c:if>>女</td></tr><tr><td width="450px">生成卡号</td><td width="450px"><input type="text" name="cardno"value="${card.cardno}"></td></tr><tr><td width="450px">余额</td><td width="450px"><input type="text" name="balance"value="${card.balance}"></td></tr><tr><td width="450px">银行卡级别</td><td width="450px"><select name="level"><option name="level" value="普通卡">普通卡</option><option name="level" value="白金卡">白金卡</option><option name="level" value="黑卡">黑卡</option></select></td></tr><tr><td width="450px" colspan="2" style="text-align: center;"><inputstyle="background-color: #42B983; color: white;" type="submit"value="添加" /></td></tr></table></form>
</body>
</html>

card.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<head>
<meta charset="utf-8">
<title>银行卡系统</title><style type="text/css">
h2 {position: relative;left: 40%;
}table {text-align: center;
}.foot {margin-right: 100px;float: right;
}tr:hover {background: #EEEEEE;
}a {text-decoration: none;
}p {text-align: right;
}
</style>
</head>
<body><h2>银行卡列表</h2><form action="cardsList.do" method="post"><table width="100%" border="1px" cellpadding="5" cellspacing="0"><tr style="background-color: #42B983; color: white"><th width="80px">银行卡序号</th><th width="150px">持卡人姓名</th><th width="150px">持卡性别</th><th width="150px">银行卡卡号</th><th width="150px">银行卡余额</th><th width="150px">银行卡级别</th><th width="160px">操作</th></tr><c:forEach var="card" items="${cardList }" varStatus="item"><tr><td width="80px">${card.id}</td><td width="150px">${card.name}</td><td width="150px"><c:if test="${card.sex==1}">男</c:if> <c:if test="${card.sex!=1}">女</c:if></td><td width="150px">${card.cardno}</td><td width="150px">¥${card.balance}</td><td width="150px">${card.level}</td><td width="160px"><ahref="javascript:if(confirm('确实删除银行卡信息?'))location='deleteCard.do?id=${card.id}'">删除</a></td></tr></c:forEach></table><p><a href="insertInto.do">添加银行卡</a></p></form>
</body>
</html>

基于Spring MVC + Spring + MyBatis的【银行卡系统】相关推荐

  1. Java泛型之mybatis,基于spring MVC 和 MyBatis 泛型的代码生成模板

    原标题:基于spring MVC 和 MyBatis 泛型的代码生成模板 简单说明 这块代码生成工具是我抽空的时候方便自己使用而编写的,并不适合其他框架,这里由于项目原有,我并没有上传泛型部份的代码, ...

  2. Spring 5 + Spring MVC 5 + MyBatis 3 的 Maven 项目集成

    相关链接: MyEclipse CI 2018.9.0 配置 Apache Maven 3.5.4 在MyEclipse CI 2018.9.0 中使用 Maven 3.5.4 创建Maven项目 在 ...

  3. Spring MVC+Spring+Mybatis+MySQL(IDEA)入门框架搭建

    目录 Spring MVC+Spring+Mybatis+MySQL(IDEA)入门框架搭建 0.项目准备 1.数据持久层Mybatis+MySQL 1.1 MySQL数据准备 1.2 Mybatis ...

  4. Spring mvc+ maven + MyBatis + Oracle + IDEA 项目搭建 - framework 进阶中(一)

    原文链接 http://blog.csdn.net/qq184377902/article/details/51493642 结合自身情况加以修改搭建的框架,记录以防备忘,方便日后学习参考. Befo ...

  5. SSM框架实现用户查询、注册、登录——IDEA整合Spring、Spring MVC、Mybatis 框架

    目录 零.前言 一.说明 1.整合说明 2.最终目标 3.数据库准备 二.搭建整合环境 1.创建 maven 工程 2.导入依赖坐标 3.创建java和resources文件夹 4.创建类和接口文件 ...

  6. Spring MVC+Spring+Mybatis实现支付宝支付功能(图文详解)(转载)

    Spring MVC+Spring+Mybatis实现支付宝支付功能(图文详解) 前言 本教程详细介绍了如何使用ssm框架实现支付宝支付功能.本文章分为两大部分,分别是「支付宝测试环境代码测试」和「将 ...

  7. spring mvc+spring+mybatis+ajax实现登录验证

    <h1>Spring Mvc+Spring+Mybatis+Ajax 实现异步登录的例子,和大家分享一下.</h1><div>login.js代码:</div ...

  8. Spring Mvc + Spring + Mybatis3 搭建Web工程详解

    Spring MVC + Spring + Mybatis3 搭建Web工程原理 可能需要用到参考: Maven创建web项目:http://blog.csdn.net/liangmaoxuan/ar ...

  9. Spring MVC + Spring + Hibernate + mysql 注册登陆入门实例

    Spring MVC + Spring + Hibernate + mysql 注册登陆入门实例 (1) 结构 (说明目的是要做在线聊天室的,也包含登陆注册部分,先用这部分做个例子)开发环境用的是ST ...

  10. Spring MVC+Spring +Hibernate配置事务,但是事务不起作用

    最近做项目,被一个问题烦恼了很久.使用Spring MVC+Spring +Hibernate开发项目,在使用注解配置事务管理,刚开始发现无论如何数据库都无法更新,但是可以从数据库查询到数据.怀疑是配 ...

最新文章

  1. 杨老师课堂_Java核心技术下之控制台模拟记事本案例...
  2. Python_note6 组合数据类型+jieba库+文本词频统计
  3. python必背100代码-100行Python代码实现一款高精度免费OCR工具
  4. python用turtle库绘制树图形_使用Python中的Turtle库绘制简单的图形
  5. 详解在 Linux 启动时,如何自动执行命令或脚本
  6. 区分Activity的四种加载模式
  7. 数据告诉你,抖音是如何在半年之内逆袭的
  8. 简述yolo1-yolo3_使用YOLO框架进行对象检测的综合指南-第二部分
  9. 关于spring MVC 绑定json字符串与实体类绑定
  10. 显示器分辨率一直跳_2020如何选择适合自己的显示器?小白选购电脑显示器必看!...
  11. 大数据之-Hadoop3.x_MapReduce_自定义outputformat案例完善执行---大数据之hadoop3.x工作笔记0123
  12. JS数组关联查找的性能优化
  13. 机器学习FP、TP、FN、TN、sensitivity、specificity及代码实现
  14. 计算机网络首地址和末地址公式,计算机中的地址即为存储单元的编码,一个首地址为1000H,容量为16KB的存储区域,末地址为________H。...
  15. 注册页面案例-世纪佳缘
  16. appium自动化,appium元素定位
  17. MobileNet论文翻译
  18. PHP(TP5框架) 对接OSS
  19. 视频消音还能这样玩???
  20. 李航《统计学习方法》第2版 第10章 HMM实现分词(代码实现)

热门文章

  1. Teemo Attacking 提莫攻击
  2. session跨域共享
  3. matplotlib绘制正弦曲线
  4. ERP财务管理系统主要解决的问题有哪些
  5. 论文笔记(CPN):Cascaded Pyramid Network for Multi-Person Pose Estimation
  6. 2020寒假第二周总结
  7. [填坑] 解决 Ubuntu ssh 登录自动休眠问题
  8. Create React App无eject配置(react-app-rewired 和 customize-cra)
  9. Kubernetes快速部署
  10. 阿里巴巴容器技术 Pouch 解析