一篇文章搞懂简单的前后端数据库连接

您所在的位置:网站首页 后端数据库设计流程图 一篇文章搞懂简单的前后端数据库连接

一篇文章搞懂简单的前后端数据库连接

2024-07-15 04:26| 来源: 网络整理| 查看: 265

一篇文章搞懂简单的前后端数据库连接 引言前期准备域名与服务器 数据库的实现后端idea与数据库连接后端代码的实现 前端实现

引言

可能很多新学习编程的小伙伴的学习路线都是单独的后端语言或者静态的前端,当想把前后端以及数据库连接起来并访问时,会遇到很多麻烦,这里举了一个小小的登录案例来说明。

前期准备

需要一个域名和服务器,能通过域名直接访问挂载到服务器上的前端代码或者后端代码 若没有这些 也没关系,一般学校都是有校园网的,在自己的电脑上打开命令提示符(cmd)输入ipconfig,得到自己电脑连接无线网的ip,这里我的ip是10.65.206.5,由于校园网的ip不是固定的,所以当重新连接时需要重新获取无线网ip 在这里插入图片描述

域名与服务器

1.当有了服务器后,会给你一个ip,可以直接通过ip访问服务器,那既然能直接访问服务器为什么需要域名呢? 主要理由: ①ip地址是一连串的数字,当有多个ip地址时很明显是不好记且容易记混的,所以这里就需要域名,例如www.baidu.com(百度的域名)很好记吧 ②直接通过ip直接访问服务器受攻击可能风险高,域名可以稍微起到一些防护作用 2.那么域名是如何访问服务器的呢? ip地址可直接访问服务器,而发送端与服务器之间有一个DNS服务器,DNS服务器可以帮我们查询到ip地址,ip地址便可直接访问服务器。如下图(图来源《图解HTTP》) 在这里插入图片描述

数据库的实现

我们需要一个登录账户和登录密码,创建表,并输入一些信息 这里以mysql与Navicat为例 在这里插入图片描述

后端

实现后端代码与数据库的连接,这里以Java为例,使用工具是idea

idea与数据库连接

idea中可直接与数据库进行连接 在这里插入图片描述

后端代码的实现

这里需要知道java与数据库之间连接的代码如何实现,以及java与前端之间数据传递的代码如何实现

/登录类/

//import net.sf.json.JSON; //import net.sf.json.JSONObject; import javax.jws.WebService; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.io.Writer; import java.sql.*; @WebServlet("/login") public class Database extends HttpServlet implements Servlet{ private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; private static final String DB_URL = "jdbc:mysql://localhost:3306/book?serverTimezone=UTC"; private static final String USER_NAME = "root"; //用户名,一般都是root private static final String PASSWORD = "123456"; //数据库密码,根据自己数据库密码进行更改 private static final String METHOD_GET = "GET"; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 通过http协议获取前端提交过来的数据 Connection conn = null; Statement stmt = null; String sql; ResultSet rs = null; resp.setContentType("text/html;charset=UTF-8"); /* 设置响应头允许ajax跨域访问 */ resp.setHeader("Access-Control-Allow-Origin", "*"); /* 星号表示所有的异域请求都可以接受, */ resp.setHeader("Access-Control-Allow-Methods", "GET,POST"); PrintWriter out = resp.getWriter(); Writer oout = resp.getWriter(); try { Class.forName(JDBC_DRIVER); conn = DriverManager.getConnection(DB_URL, USER_NAME, PASSWORD); stmt = conn.createStatement(); String user = ""; String pwd = ""; String success = null; String id = (String)req.getParameter("user");//通过容器的实现来取得通过get或者post方式提交过来的数据,这里均是get方法 String password = (String)req.getParameter("pwd"); System.out.println(id+password); sql = "select pwd from login where user = '"+id+"'"; //在数据库中查找相同id的密码 rs = stmt.executeQuery(sql); while(rs.next()){ pwd = rs.getString("pwd"); System.out.println(pwd); if( pwd.equals(password)&&password!=null){//若从前端得到的密码与数据库中密码一致时返回成功 success = "1"; oout.write(success); } } if(success == null){ oout.write("0"); } rs.close(); stmt.close(); conn.close(); out.close(); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } finally { } } @Override public void init(ServletConfig servletConfig) throws javax.servlet.ServletException { } } 前端

前端部分需要一个简单的登录界面,这里以微信小程序为例 //在数据库中查不到时插入

login.wxml

账号:


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3