第一个项目的大概流程

创建实体类

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

创建DAO层

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

public interface BaseAdminDao {
    //根据用户名更新用户的的登陆时间和ip
    void 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();//获得对方的IP
            AdminService.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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值