创建实体类

实体类的类名与数据库的表名相同,实体类的变量名与数据库的列名相同,即每个属性对应表中的一个列,然后创建getset方法和全参无参的构造方法

创建DAO层

首先创建要实现的方法的接口,例如:

public interface BaseAdminDao {//根据用户名更新用户的的登陆时间和ipvoid updateLoginTime(String username, Date date,String ip);//根据用户名和密码登录boolean login(String username,String password);
}

然后再imp中创建对应的类实现这些接口,这些类直接与数据库进行增删改查,首先建立与数据库的连接:

//1.    获取连接Connection conn = DruidUtil.getConnection();PreparedStatement state = null;

然后预编译SQL语句:

//2.    预编译SQL语句try {state = conn.prepareStatement(SQL_UPDATE_LOGIN_TIME);

SQL语句如下:

``private static final String SQL_UPDATE_LOGIN_TIME = "UPDATE eadmin SET LOGINTIME=?,LOGINIP=? WHERE USERNAME=?";

接下来填充参数:

//3.    填充参数state.setDate(1,new java.sql.Date(date.getTime()));state.setString(2,ip);state.setString(3,username);

执行SQl语句:

 //4.    执行state.executeUpdate();

最后需要释放资源:

  DruidUtil.close(conn,state,null);

这里使用的是DruidUtil的工具来连接数据库

创建Service层

service层是我们直接调用的层,创建dao层的对象,然后使用imp中的方法

//创建对象
private static BaseAdminDao dao=new AdminDaoMysql();
//更新登陆时间和ip
public static void updateLoginTimeAndIp(String username, Date date,String ip){dao.updateLoginTime(username,date,ip);
}
//登录
public static boolean login(String username,String password){return dao.login(username,password);
}

我们再controller层中直接调用的就是service层中的方法,service层在处理简单问题时只需要调用imp中的方法,遇到复杂的问题需要进行一定的判断

创建Controller层

Controller层负责接受前端发送的数据和向前端发送数据
首先设置路径,接受该路径传过来的数据

@ResponseBody("/admin/login.do")

这个注解写在方法上方,方法需要HttpServletRequest和HttpServletResponse这两个参数,用于接受数据和重定向
首先接收数据:

String username =request.getParameter("username");
String password =request.getParameter("password");

括号中的是前端发送的数据:

            //ajax与服务器交互$.post("login.do",{username:username,password:password},function (data){//关闭load窗口layer.close(windowsId);//将服务器返回的结果进行展示layer.msg(data.result);if (data.status==0){//登录成功,跳转到主页location.assign("index.html")}},"JSON");

Message类用于规范数据:

public class Message {//传递信息的规范//格式:{status:0,result:"",data:{}}private int status;//状态码   0表时成功,-1表示失败private String result;//内容消息private Object data;//消息所携带的数据

调用Service的方法

result= AdminService.login(username,password);

根据结果返回不同的结果给Ajax:

if (result){message=new Message(0,"登陆成功");//登录时间和IP更新Date date=new Date();//创建当前时间String ip=request.getRemoteUser();//获得对方的IPAdminService.updateLoginTimeAndIp(username,date,ip);request.getSession().setAttribute("adminUserName","username");request.getSession().setAttribute("adminUserPhone","");}else {message=new Message(-1,"登陆失败");}

将数据转换成JSON,并返回给前端

String json= JSONUtil.toJSON(message);
return json;

至此第一个项目的大概流程结束

第一个项目的大概流程相关推荐

  1. 一个运维项目的大概流程,附带20种运维开发工具

    项目前期 产品模型-开发-测试(安全)-上线 立项: 初期: 1)需要的服务器(物理机,虚拟机),数据库,环境,带宽 2) 项目运维的部署方案(也为了后期方便新人的操作) ,比如环境规划(具备一定的扩 ...

  2. 实战:移动APP项目产品开发流程详解

    问题补充:移动端APP产品的开发流程是如何的?开发移动端APP,从产品需求规划到最终上线发版,都有哪些必要流程,其中需要重点注意的事情有哪些,可以基于你当前的工作情况酌情回答. 黄沐秋Moon NBP ...

  3. 第一回 开篇 D3D渲染流程简介

    第一回 开篇 D3D渲染流程简介 http://developer.178.com/201004/65293187592.html 开发这个3D engine已经两年半了,从06年8月刚开始统计的4万 ...

  4. 第一个项目:字符画神器——全程制作历程

    第一个项目:字符画神器--全程制作历程 本文适用于:java入门程序员 **读本文你可以学到: 1.一个初级程序员是如何设计初级程序的. 2.字符画的设计原理. 3.ffmpeg的截取画面与图片合成视 ...

  5. 人工智能项目的开发流程概述

    人工智能作为当下最热门的行业之一,不管是高考的专业选择中,还是各行各业的工作中,基本都会听到人工智能这个词,主要原因就是社会上各行各业对人工智能的需求越来越大了.在国内,从2015年开始,人工智能技术 ...

  6. 人工智能技术及项目产品开发流程

    人工智能作为当下最热门的行业之一,不管是高考的专业选择中,还是各行各业的工作中,基本都会听到人工智能这个词,主要原因就是社会上各行各业对人工智能的需求越来越大了.在国内,从2015年开始,人工智能技术 ...

  7. 我在兰亭这三年之第一个项目

    [前言] 在兰亭这段时间里,做了很多项目,前前后后加起来有10几个大版本和项目及很多的hotfix,当然每一个项目中都有收获,都让我得到一点点的积累和沉淀.但是让我记忆犹新的还是第一个项目. [正文] ...

  8. flutter图标按钮_Flutter开发第一个项目android studio 开发工具的使用说明

    Flutter开发第一个项目android studio 开发工具的使用说明 做个自我介绍 自我介绍还是有必要介绍一下的,毕竟这是网络里,你看不到我,我看不到你,只能通过文字来传递信息,本人做技术8年 ...

  9. 阿里云自动java和mysql数据库_阿里云服务器之基于Linux系统部署上线JavaWeb项目和连接MySQL数据库(从购买云服务器到发布JavaWeb项目全套详细流程)...

    阿里云服务器之基于Linux系统部署上线JavaWeb项目和连接MySQL数据库(从购买云服务器到发布JavaWeb项目全套详细流程) (仅此纪念人生第一篇学习博客) 前阵子接了一个小小的JavaWe ...

最新文章

  1. jvm五:编译期不能确定常量的值
  2. Java问题排查工具箱
  3. Mine Sweeper II
  4. nssl1322,jzoj(初中)2109-清兵线【dp】
  5. (软件工程复习核心重点)第六章实现和测试-第四节:集成测试
  6. python用于声明类的关键字_python的with关键字
  7. cfe刷机教程 斐讯k3_2019斐讯K3全版本免拆机免降级刷机教程
  8. java进制转换所有方法_Java进制转换方法整理
  9. idea 安装 jclasslib 插件
  10. vm16安装efi win7 方案
  11. PLC网关是什么 PLC网关是做什么的
  12. 计算机理解人的情感的前提是,情感识别
  13. android qq apk,仿QQ获取手机中的APK并分享的实现
  14. c++系统骨干研发进阶的道和术
  15. RNA-seq 详细教程:实验设计(2)
  16. blender改变物体中心位置
  17. 03_JavaScript常见运算符
  18. 你的团队健康吗?如何打造一支健康的团队?
  19. Arduino使用光线传感器
  20. 浅析网络编程之AF_INET和PF_INET

热门文章

  1. Navicat 连接阿里云上的数据库
  2. NODE安装和使用说明,报错处理方法
  3. Python OpenCV 图片滑块验证码自动识别方案分析与自动化识别方案实现 图片相似度对比 OpenCV如何找到图片中的正方形并进行标记?
  4. 【Java基础系列】基本数据类型及包装类
  5. MD5的加密和解密算法
  6. 软件的生命周期SDLC
  7. 机器学习之决策树实践:隐形眼镜类型预测
  8. teamviewer 使用数量到达上限_解决Teamviewer免费版设备数量限制
  9. URL锚点HTML定位技术机制、应用与问题
  10. IceCTF - All your Base are belong to us