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

可以做宣传的网站有哪些seo教程搜索引擎优化

可以做宣传的网站有哪些,seo教程搜索引擎优化,毕业设计网站设计说明书,一学一做教育视频网站有哪些内容文章目录 数据库表的设计和准备数据环境搭建前端页面编写后端代码实现后端代码目录dao层servicewebpojoUtils 数据库表的设计和准备数据 环境搭建 在pom.xml中配置依赖&#xff08;logback、mybatis、mysql、servlet&#xff09; 注意引入tomcat 前端页面编写 <!DOCTYPE …

文章目录

  • 数据库表的设计和准备数据
  • 环境搭建
  • 前端页面编写
  • 后端代码实现
    • 后端代码目录
    • dao层
    • service
    • web
    • pojo
    • Utils

数据库表的设计和准备数据

在这里插入图片描述
在这里插入图片描述

环境搭建

在pom.xml中配置依赖(logback、mybatis、mysql、servlet)
注意引入tomcat

前端页面编写

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>银行账户转账</title>
</head>
<body><form action="/bank/transfer" method="post">转出账户:<input type="text" name="fromActno"><br>转入账号:<input type="text" name="toActno"><br>转账金额:<input type="text" name="money"><br><input type="submit" value="转账"></form>
</body>
</html>

后端代码实现

后端代码目录

在这里插入图片描述

dao层

//AccountDaoImpl
package com.example.bank.dao.impl;import com.example.bank.dao.AccountDao;
import com.example.bank.pojo.Account;
import com.example.bank.utils.SqlSessionUtil;
import org.apache.ibatis.session.SqlSession;public class AccountDaoImpl implements AccountDao {@Overridepublic Account selectByActno(String actno) {SqlSession sqlSession = SqlSessionUtil.openSession();Account account = (Account) sqlSession.selectOne("account.selectByActno", actno);sqlSession.close();return account;}@Overridepublic int updateByActno(Account act) {SqlSession sqlSession = SqlSessionUtil.openSession();int count = sqlSession.update("account.updateByActno",act);sqlSession.commit();sqlSession.close();return count;}
}
package com.example.bank.dao;import com.example.bank.pojo.Account;//dao对象中的任何一个方法和业务不挂钩,没有任何业务逻辑在里面
//DAO中的方法就是做CRUD的
public interface AccountDao {//根据账号查询账户信息Account selectByActno(String actno);//更新账户信息int updateByActno(Account act);
}

dao层是三层架构的最底层,是数据访问层,主要是连接MySQL,并做数据的CRUD,不包含任何的逻辑

service

//AccountServiceImpl
package com.example.bank.service.impl;import com.example.bank.dao.AccountDao;
import com.example.bank.dao.impl.AccountDaoImpl;
import com.example.bank.exceptions.MoneyNotEnoughException;
import com.example.bank.exceptions.TransferException;
import com.example.bank.pojo.Account;
import com.example.bank.service.AccountService;public class AccountServiceImpl implements AccountService {private AccountDao accountDao = new AccountDaoImpl();@Overridepublic void transfer(String fromActno, String toActno, double money) throws MoneyNotEnoughException, TransferException {//1、判断转出账户的余额是否充足Account fromAct = accountDao.selectByActno(fromActno);if (fromAct.getBalance() < money){//2、如果转出账户余额不足,提示用户throw new MoneyNotEnoughException("对不起,您的余额不足");}//3、如果转出账户余额充足,更新转出账户余额(update)//先更新内存中java对象account的余额Account toAct = accountDao.selectByActno(toActno);fromAct.setBalance(fromAct.getBalance() - money);toAct.setBalance(toAct.getBalance() + money);int count = accountDao.updateByActno(fromAct);//4、更新转入账户余额(update)count += accountDao.updateByActno(toAct);if (count != 2){throw new TransferException("转账异常,未知原因");}}}
//AccountService
package com.example.bank.service;import com.example.bank.exceptions.MoneyNotEnoughException;
import com.example.bank.exceptions.TransferException;public interface AccountService {
//    @param fromActno 转出账号
//    @param toActno 转入账号
//    @param money 转账金额void transfer(String fromActno, String toActno, double money) throws MoneyNotEnoughException, TransferException;
}

service层是业务逻辑层,主要是对数据进行逻辑的处理,页面的改变等。这里的逻辑主要就是对余额先进行能否转移的判断,其次是对账户余额的转移改变,最后就是对不同错误的出现返回不同的错误类型

web

//AccountServlet
package com.example.bank.web;import com.example.bank.exceptions.MoneyNotEnoughException;
import com.example.bank.exceptions.TransferException;
import com.example.bank.service.AccountService;
import com.example.bank.service.impl.AccountServiceImpl;import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/transfer")
public class AccountServlet extends HttpServlet {//为了让这个对象在其他方法中也可以用private AccountService accountService = new AccountServiceImpl();@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws IOException{//获取表单数据String fromActno = request.getParameter("fromActno");String toActno = request.getParameter("toActno");double money = Double.parseDouble(request.getParameter("money"));try {//调用servlet的转账方法完成转账。(调业务层)accountService.transfer(fromActno,toActno,money);//程序能够走到这里,表示转账一定成功了//调用view完成展示结果response.sendRedirect(request.getContextPath() + "/success.html");} catch (MoneyNotEnoughException e) {response.sendRedirect(request.getContextPath() + "/error1.html");} catch (TransferException e) {response.sendRedirect(request.getContextPath() + "/error2.html");}}
}

展示层,获取表单数据以及针对不同情况错误的出现展示不同的页面信息。

pojo

pojo是封装类,账号的类型里面有的相关数据,一方面能在java中进行数据操作,另一方面对接MySQL的账户信息,方便CRUD。

package com.example.bank.web;import com.example.bank.exceptions.MoneyNotEnoughException;
import com.example.bank.exceptions.TransferException;
import com.example.bank.service.AccountService;
import com.example.bank.service.impl.AccountServiceImpl;import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/transfer")
public class AccountServlet extends HttpServlet {//为了让这个对象在其他方法中也可以用private AccountService accountService = new AccountServiceImpl();@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws IOException{//获取表单数据String fromActno = request.getParameter("fromActno");String toActno = request.getParameter("toActno");double money = Double.parseDouble(request.getParameter("money"));try {//调用servlet的转账方法完成转账。(调业务层)accountService.transfer(fromActno,toActno,money);//程序能够走到这里,表示转账一定成功了//调用view完成展示结果response.sendRedirect(request.getContextPath() + "/success.html");} catch (MoneyNotEnoughException e) {response.sendRedirect(request.getContextPath() + "/error1.html");} catch (TransferException e) {response.sendRedirect(request.getContextPath() + "/error2.html");}}
}

Utils

package com.example.bank.utils;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;public class SqlSessionUtil {private SqlSessionUtil(){}private static SqlSessionFactory sqlSessionFactory;static {try {sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));} catch (IOException e) {throw new RuntimeException(e);}}public static SqlSession openSession(){return sqlSessionFactory.openSession();}}

写好的工具类,方便在dao层获取sqlsession对象。

银行转账小功能

http://www.ds6.com.cn/news/114160.html

相关文章:

  • 广州17网站一起做网店关键词挖掘工具有哪些
  • 网站开发报价单站长工具服务器查询
  • 策划方案免费的网站网站服务器ip地址查询
  • 自己网站如何做关键词排名互联网广告公司
  • 中国自适应网站建设长尾关键词挖掘站长工具
  • html5移动网站开发重庆seo网络优化咨询热线
  • 1688电脑网页版代做seo排名
  • 太原制作公司网站怎么做链接推广产品
  • 网站后台管理系统设计怎么引流推广
  • 建筑设计单位福州seo网站推广优化
  • 网站模板被抄袭怎么办关键词搜索数据
  • 做公司网站,哪个程序用的多淘客推广怎么做
  • 郴州网站优化搜索引擎链接
  • 郑州做网站的外包公司百度企业官网
  • 杭州网站关键词百度指数怎么提升
  • 学做网站的笔记本网站建设企业咨询
  • 融资网站建设重点四川seo多少钱
  • 学编程有什么好处抖音seo排名优化软件
  • 网站栏目优化真正免费建站网站
  • 长江工程建设局网站必应站长平台
  • 淄博哪家网络公司做网站好百度搜索引擎投放
  • 安卓上怎么做单机网站自制网页
  • 网站建设目标怎样开自己的网站
  • 网站设计专家短视频营销方式有哪些
  • 页面设计模板网站如何让网站被百度收录
  • 网站开发流程需要用到的语言广州seo推广营销
  • 长治网站建设经典广告语
  • 课程网站开发流程图及原型图合肥网站seo推广
  • 男女性做那个微视频网站怎么做电商平台
  • 大型网站建设报价方案百度联盟点击广告赚钱