【E家园项目】

news/2024/11/8 16:32:59/

登录

        1、utils类中连接数据库,创建BaseDao

        2、entity类写入用户实体:

        3、Dao类编写实现用户登录的方法

        4、用户接口biz层:IUserBiz . java

        5、在index.jsp界面中编写登录的方法

实现用户登录需运用到三层构架:utils类、entity类、dao类、biz层

登录
1、utils类中连接数据库,创建BaseDao

package com.zking.utils;
 
/*
 * 数据库帮助类
 */
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
 
public class DBHelper {
    // 加载驱动
    static {
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
    // 建立连接
    public static Connection getConn() {
        Connection conn = null;
        try {
            String url = "jdbc:oracle:thin:@localhost:1521:orc";
            conn = DriverManager.getConnection(url, "scott", "123");
        } catch (Exception e) {
            e.printStackTrace();
 
        }
        return conn;
    }
 
    // 关闭数据库
    public static void myClose(Connection conn, PreparedStatement ps, ResultSet rs) {
        try {
            if (conn != null && !conn.isClosed()) {
                conn.close();
            }
            if (ps != null) {
                ps.close();
            }
            if (rs != null) {
                rs.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
 
    }

 
BaseDao . java

package com.zking.utils;
 
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
 
/**
 * 增删改查通用类
 * 
 * @author ling
 *
 */
public class BaseDao {
    protected ResultSet rs = null;
    protected Connection conn = null;
    protected PreparedStatement ps = null;
 
    /**
     * 方法功能:通用增删改
     * 
     */
    public int executeUpdate(String sql, Object... objects) {
        int n = 0;
        try {
            conn = DBHelper.getConn();
            ps = conn.prepareStatement(sql);
            for (int i = 0; i < objects.length; i++) {
                ps.setObject(i + 1, objects[i]);
            }
            n = ps.executeUpdate();
        } catch (Exception e) {
            System.out.println("DAO增删改异常");
            e.printStackTrace();
        } finally {
            DBHelper.myClose(conn, ps, null);
        }
        return n;
    }
 
    /**
     * 方法功能:通用查询
     * 
     */
    public ResultSet executeQuery(String sql, Object... objects) {
        try {
            conn = DBHelper.getConn();
            ps = conn.prepareStatement(sql);
            for (int i = 0; i < objects.length; i++) {
                ps.setObject(i + 1, objects[i]);
            }
            rs = ps.executeQuery();
        } catch (Exception e) {
            System.out.println("DAO查询异常");
            e.printStackTrace();
        }
        return rs;
    }
 
    /**
     * 方法功能:获取指定表的最大ID
     * 
     */
    public int getMaxID(String colID, String tableName) {
        String sql = "select nvl(max(" + colID + "),0) from " + tableName;
        ResultSet rs = null;
        try {
            rs = this.executeQuery(sql);
            if (rs.next()) {
                return rs.getInt(1) + 1;
            }
        } catch (Exception e) {
            // TODO: handle exception
        }
        return 0;
    }
 
    /**
     * 方法功能:获取任意表格的总记录数
     * 
     * @param 表名
     */
    public int getTableCount(String tableName) {
        int count = 0;
        String sql = "select count(*) from " + tableName;
 
        ResultSet rs = this.executeQuery(sql);
        try {
            if (rs.next()) {
                count = rs.getInt(1);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DBHelper.myClose(this.conn, this.ps, rs);
        }
        return count;
    }

<!-- 登录 -->
                  

  <c:if test="${empty users }">
                        <form action="dologin.jsp" method="post">
                            <table style="margin-left: 5px;">
                                <tr>
                                    <td></td>
                                </tr>
                                <tr>
                                    <td>登录名:<input name="username" style="width: 110px;" />
                                </tr>
                                <tr>
                                    <td>密码 :<input name="password" style="width: 110px;" /></td>
                                </tr>
                                <tr>
                                    <td><input type="image" src="image/button01.gif" /> <img
                                        src="image/button02.gif" οnclick="register();" /></td>
                                </tr>
                            </table>
                        </form>
                    </c:if>
                    <c:if test="${not empty users }">
                        <div style="text-align: center;">
                            <p>欢迎${users.username }回来!</p>
                            <!-- <h5></h5> -->
                            <button>修改密码</button>
                            <button>个人中心</button>
                        </div>
                    </c:if>


http://www.ppmy.cn/news/372937.html

相关文章

家园

题目描述 Description 由于人类对自然的疯狂破坏&#xff0c;人们意识到在大约2300年之后&#xff0c;地球不能再居住了&#xff0c;于是在月球上建立了新的绿地&#xff0c;以便在需要时移民。令人意想不到的是&#xff0c;2177年冬由于未知的原因&#xff0c;地球环境发生了连…

情迁机器人Tim_情迁QQ机器人1.8.2更新说明

群昵称违规支持重复词检测 为了实现检测重复必须把词组用()括起来 举例 比如这里应该输入的格式是 情迁-深圳-红米Note4a-N 而用户输入了情迁-情迁-情迁-N 那么这种不按套路出牌的用户如何对付? 因此本次升级支持原子,也就是()代表一个字符 &#xff0c;系统会遍历所有原子&am…

QQ登录, 腾讯开放平台和QQ互联的坑

最近&#xff0c;项目中&#xff0c;QQ登录的APPid 和key 是 腾讯开放平台的&#xff0c;如果要转换成QQ互联&#xff0c;必须QQ互联关联腾讯开放平台&#xff0c;并审核通过&#xff0c;如果新建一个App的话&#xff0c;再给开发AppID和KEY就会报10044&#xff0c;非官方正版应…

Ubuntu下载QQ

Ubuntu下载QQ 下载qq方便传输文件。 Step1:首先进入腾讯官网下载软件包 1.1&#xff1a;在官网上选择合适的安装包 注&#xff1a;因为ubuntu属于linux系统&#xff0c;所以选择QQ Linux版。 1.2 选择合适的架构 不知道自己架构的&#xff0c;使用以下命令进行查看&#xf…

情迁QQ机器人安装包开源

<pre name"code" class"plain">; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档&#xff01; #define MyAppName "情迁&#xff31;&#xff31;机器人" ;应用名称 #define AppVerName "情迁&#xff31;&#xff31;机器人…

我的 QQ 家园

我的 QQ 家园 QQ秀的衣服有时间限制&#xff0c;不知道QQ家园有没有&#xff0c;不管有没有了&#xff0c;还是搬过来为妙......这些东西都是我精挑细选出来的“super 超值”商品啊&#xff01;&#xff01;&#xff01;&#xff08;性价比&#xff1d;价值价格&#xff0…

【python】作为程序员最不能忘记的八种算法

一、说明 这是程序员最不能忘的8种算法&#xff1b;这些算法广泛用于各种应用程序&#xff0c;程序员对它们有深刻的理解很重要。所以我会尽力解释它们。 算法是用于解决特定问题或完成特定任务的一组指令或过程。算法可以用任何编程语言表示&#xff0c;可以像一系列基本操作一…

【微信小程序】Behaviors

文章目录 一、什么是behaviors&#xff1f;二、behaviors 的工作方式三、behaviors的生命周期四、behaviors的作用 一、什么是behaviors&#xff1f; behaviors 是小程序中&#xff0c;用于实现组件间代码共享&#xff0c;通常用于实现一些通用的功能或行为&#xff0c;例如页…