后台与数据库的交互

最近刚刚完成数据库与后台的交接,下面来写写体会与经验吧。

后台和数据库是什么呢?

通俗的讲,后台指的是服务器,数据库是服务器端用来存放数据的;用户通过前台操作,数据传递到服务器端,服务器上的程序操作数据库,处理数据;处理完毕,反馈结果,或者数据给前台,显示数据或结果。

举个例子:

简单的用户登录页面与后台数据库的交互

当用户登录时,如果用户名和密码都正确的时候会进入成功页面。在validate.jsp里会先获得用户名,然后再数据里查找此用户名是否已经存在,若存在则再与所对应的密码进行对比,若都相同则返回flag为2,成功登录,若用户名存在而密码不正确,则返回flag为1,提示密码错误;若在数据库里找不到对应的用户名,则返回flag为0,提示用户名错误。

login.jsp

<body>
    <form action="validate.jsp" method="post">
    <table>
        <tr>
            <td>用户名:</td>
            <td><input type="text" name="loginName"></td>
            <td><font color="red"><%=request.getAttribute("loginNameError")==null ? "":request.getAttribute("loginNameError") %></font></td>
        </tr>
        <tr>
            <td> 密码:</td>
            <td><input type="password" name="loginPass"></td>
            <td><font color="red"><%=request.getAttribute("loginPassError")==null?"":request.getAttribute("loginPassError") %></font></td>
        </tr>
        <tr>
            <td><input type="submit" value="提交"></td>
            <td><input type="reset" value="重置"></td>
        </tr>
     </table>
    </form>
</body>

validate.jsp

<body>
   <%
    String loginName=request.getParameter("loginName");
    String loginPass=request.getParameter("loginPass");

    User user=new User();
    user.setUsername(loginName);
    user.setPassword(loginPass);

    LoginDao loginDao=new LoginDaoImpl();
    int flag=loginDao.login(user);
    if(flag==2){
        session.setAttribute("loginName", loginName);
        response.sendRedirect(request.getContextPath()+"/index.jsp");
    }else {
        if(flag==1){
            request.setAttribute("loginPassError", "loginPass is error");
        }else if(flag==0){
            request.setAttribute("loginNameError", "loginName is error");
        }
        request.getRequestDispatcher("/login.jsp").forward(request, response);
    }
    %>
  </body>

//编写一个接口,只定义方法,具体实现让实现它的接口去完成。
LoginDao.java

package com.dao.dao;

import com.jdbc.jdbc.User;

public interface LoginDao {
    int login(User user);
}

//实现接口的类,实现了具体的操作
LoginDaoImpl.java

package com.impls.impls;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.jdbc.common.ConnectionUtils;
import com.dao.dao.LoginDao;
import com.jdbc.jdbc.User;

public class LoginDaoImpl implements LoginDao{
    Connection con=null;
    PreparedStatement pstm=null;
    ResultSet rs=null;

    public int login(User user) {
        //连接数据库
        con=ConnectionUtils.getConnection();
        int flag=0;
        try {
            //发送sql文
            String sql="select t_name,t_pass from t_user where t_name=?";
            pstm=con.prepareStatement(sql);
            pstm.setString(1, user.getUsername());
            rs=pstm.executeQuery();
            //处理结果集
            while(rs.next()){
                String temp=rs.getString("t_pass");
                if(temp.equals(user.getPassword())){
                    flag=2; //用户名和密码都正确
                }else{
                    flag=1;//密码错误
                }

            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            //资源释放(逆序释放)
            ConnectionUtils.close(rs, pstm, con);   
        }   
        return flag;
    }
}

[代码参考:http://hryblog.cn https://blog.csdn.net/hry1243916844/article/details/71141116]

最后,在个大家分享一个:经典图书管理系统后台数据库https://blog.csdn.net/shiweisi_hqu/article/details/6047916
在这里插入图片描述

Python后端数据库实例是指使用Python作为后端语言开发的数据库应用程序。在这样的实例中,Python通常被用于处理数据存取、查询、分析和管理,而数据库系统则被用于存储和管理数据。 在Python后端数据库实例中,常用的数据库系统包括MySQL、PostgreSQL、MongoDB等。这些数据库系统提供了不同的数据存储和查询方式,以及管理工具和API,开发人员可以根据需求选择适合的数据库系统进行开发。同时,Python提供了丰富的数据库连接库和框架,如SQLAlchemy、Django ORM等,方便开发人员快速、高效地与数据库进行交互。 Python后端数据库实例通常用于构建各种类型的应用程序,包括Web应用、移动应用、数据分析系统等。开发人员可以利用Python的灵活性和强大的数据处理能力,结合数据库系统的稳健性和高效性,构建出可靠、高性能的数据库应用程序。 在Python后端数据库实例中,开发人员需要考虑数据的安全性、一致性和可靠性,以及系统的性能、扩展性和易维护性。他们需要设计合理的数据模型,实现高效的数据存取和查询逻辑,以及优化系统的性能和吞吐量。 总之,Python后端数据库实例是一种使用Python作为后端语言开发的数据库应用程序,它充分发挥了Python语言和数据库系统的优势,结合了灵活性、高效性和稳健性,适用于各种类型的应用程序开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值