javaweb(3.0)数据库链接

  • • 发表于 8年前
  • • 作者 大妖怪
  • • 3240 人浏览
  • • 10 条评论
  • • 最后编辑时间 8年前
  • • 来自 [技 术]

原创声明:本文为作者原创,未经允许不得转载,经授权转载需注明作者和出处

我们平时操作网站,用户的数据都保存在一个叫数据库的地方。数据库有很多种,什么Oracle啦,Mysql啦,Sql Server啦等等。本章将要讲到servlet如何和操作数据库,当然,sql方面其实属于另一个方向了,这里只会讲怎么用,不会深入研究。
我们现在用MySql来做一个用户登录的需求:
需求是这样的,我们在一个登陆界面输入用户名和密码然后点击登陆,如果用户名密码正确(也就是根据用户名和密码可以在数据库中找到数据),就进入主页(显示用户名和密码),如果密码错误,就返回主页并提示密码错误。
数据库USER表中用到的字段:

  • id:主键
  • userName: 用户名
  • password: 密码
    在引入之前我们需要导入一个数据库连接驱动jar包:mysql-connector-java.jar
    下面是程序:
    jsp:

    <%@ page language="java" contentType="text/html; charset=utf-8"
      pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
      <form action="login" method="post">
          用户名:<input type="text" name="userName" /><br />
          密码:<input type="password" name="password" /><br />
          <input type="submit" value="登录" />
      </form>
    </body>
    </html>
    

    java代码:

      public class LoginServlet extends HttpServlet {
      private static final long serialVersionUID = -349715959352759220L;
    
      // JDBC 驱动
      private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
      //数据库地址 格式是 jdbc:mysql://数据库地址(可以是ip地址):端口号(默认是3306)/数据库名
      private static final String URL = "jdbc:mysql://localhost:3306/loginDemo";
    
      // 数据库的用户名与密码,需要根据自己的设置
      private static final String USER = "root";
      private static final String PASS = "root"; 
    
      @Override
      protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
          //接收到的账号密码
          String userName = req.getParameter("userName");
          String password = req.getParameter("password");
    
          Connection conn = null;
          Statement stmt = null;
          // 设置响应内容类型
          resp.setContentType("text/html;charset=UTF-8");
          PrintWriter out = resp.getWriter();
          try{
              // 注册 JDBC 驱动器
              Class.forName(JDBC_DRIVER);
    
              // 打开一个连接
              conn = DriverManager.getConnection(URL,USER,PASS);
    
              //拼接查询的SQL语句
              StringBuffer sql = new StringBuffer("SELECT * FROM USER WHERE userName = '");
              sql.append(userName);
              sql.append("' and password = '").append(password).append("'");
    
              // 执行 SQL 语句
              stmt = conn.createStatement();
              //获取结果
              ResultSet rs = stmt.executeQuery(sql.toString());
    
              // 展开结果集数据
              if(rs.next()){
                  //获取查出来的字段
                  int id  = rs.getInt("id");
                  String userNam = rs.getString("userName");
    
                  // 输出数据
                  out.println("用户ID: " + id);
                  out.println("用户名: " + userNam);
              }else{
                  out.print("用户名或密码错误!");
              }
              // 完成后关闭
              rs.close();
              stmt.close();
              conn.close();
          } catch(Exception se) {
              // 处理 异常
              se.printStackTrace();
          }finally{
              //关闭资源
              try{
                  if(stmt!=null)
                  stmt.close();
              }catch(SQLException se2){
              }
              try{
                  if(conn!=null)
                  conn.close();
              }catch(SQLException se){
                  se.printStackTrace();
              }
          }
      }
    

    web.xml:

      <servlet>
          <servlet-name>login</servlet-name>
          <servlet-class>jdbc.LoginServlet</servlet-class>
      </servlet>
      <servlet-mapping>
          <servlet-name>login</servlet-name>
          <url-pattern>/login</url-pattern>
      </servlet-mapping>
      <welcome-file-list>
          <welcome-file>login.jsp</welcome-file>
      </welcome-file-list>
    

    运行以上代码,我们可以进入一个登陆页面:

    在数据库中创建了一条数据,用户名是dayaoguai,密码是123456

    然后我们输入正确的账号密码:
    会进入主页,显示id和用户名

    如果输入错误的账号密码:

    总结:
    servlet链接数据库的步骤

  • 注册驱动
  • 打开链接
  • 写SQL语句
  • 执行SQL语句
  • 获取结果
  • 关闭资源
    至于数据库还有html相关内容,以后开贴专门讲,目前不懂的可以去百度一下。
    另外附上sql文件和源码
    sql文件:https://pan.baidu.com/s/1bpIkgTx
    项目源码:https://pan.baidu.com/s/1pLDcaYv
分享到:
10条评论
Ctrl+Enter
作者

大妖怪

大妖怪

APP:1 帖子:76 回复:200 积分:7517

已加入社区[2943]天

梦里巷口,可有你倚门回首

作者详情》
Top