登陆界面(连接数据库,从数据库中获取账号密码)

package com.derun;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


public class JDBC {
   
    private static final String dburl = "jdbc:mysql://localhost:3306/xuejava";
    private static final String user = "suixin";
    private static final String password = "123456";


    public static Connection getConnection() {
        
        Connection con = null;
        try {
            System.out.println("正在连接");
            con = DriverManager.getConnection(dburl, user, password);
            System.out.println("已连接");
        } catch (SQLException ex) {
            System.out.println("连接失败");
            ex.printStackTrace();
        }
        return con;
    }

}



package com.xuejava.iframe;


import com.derun.JDBC;
import com.derun.Login;
import com.xuejava.Library;


import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;


public class LoginFrame extends javax.swing.JFrame {


    public LoginFrame() {
        initComponents();


        this.setLocationRelativeTo(null);
        
    }


    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {


        jLabel1 = new javax.swing.JLabel();
        jPanel1 = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        username = new javax.swing.JTextField();
        password = new javax.swing.JPasswordField();
        jPanel3 = new javax.swing.JPanel();
        btn_login = new javax.swing.JButton();
        btn_reset = new javax.swing.JButton();


        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);


        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/login.jpg"))); // NOI18N
        getContentPane().add(jLabel1, java.awt.BorderLayout.PAGE_START);


        jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        jPanel1.setPreferredSize(new java.awt.Dimension(280, 200));


        jPanel2.setMinimumSize(new java.awt.Dimension(280, 182));
        jPanel2.setPreferredSize(new java.awt.Dimension(280, 150));


        jLabel2.setText("用户名:");


        jLabel3.setText("密  码:");


        username.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                usernameActionPerformed(evt);
            }
        });


        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGap(31, 31, 31)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jLabel3)
                    .addComponent(jLabel2))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(password, javax.swing.GroupLayout.DEFAULT_SIZE, 121, Short.MAX_VALUE)
                    .addComponent(username))
                .addGap(0, 0, Short.MAX_VALUE))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGap(45, 45, 45)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(username, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(30, 30, 30)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(password, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );


        jPanel3.setPreferredSize(new java.awt.Dimension(280, 50));


        btn_login.setText("登陆");
        btn_login.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn_loginActionPerformed(evt);
            }
        });


        btn_reset.setText("重置");
        btn_reset.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn_resetActionPerformed(evt);
            }
        });


        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addGap(52, 52, 52)
                .addComponent(btn_login)
                .addGap(28, 28, 28)
                .addComponent(btn_reset)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btn_login)
                    .addComponent(btn_reset))
                .addGap(0, 28, Short.MAX_VALUE))
        );


        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 270, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 9, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 152, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, 51, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );


        getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);


        pack();
    }// </editor-fold>                        


    private void usernameActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
    }                                        


    private void btn_loginActionPerformed(java.awt.event.ActionEvent evt) {                                          
        String user_name = username.getText().trim();
        String pass_word = new String(password.getPassword());
        if (user_name.length() == 0) {
            JOptionPane.showMessageDialog(null, "用户名不能为空!");
            return;
        }


        if (pass_word.length() == 0) {
            JOptionPane.showMessageDialog(null, "用户名不能为空!");
            return;
        }


        boolean a = true;
        while (a) {
            
            Login ln = getLogins(user_name);
            if (ln == null) {
                System.out.println("请输入正确的信息");
                JOptionPane.showMessageDialog(null, "用户名不存在");
                username.setText("");
                password.setText("");
                return;
            }
            String zh = ln.getLogin_name();
            String ps = ln.getPass_word();
            if (zh.equals(user_name) && ps.equals(pass_word)) {
                Library libraryFrame = new Library();
                libraryFrame.setVisible(true);
                this.setVisible(false);
                a = false;
            } else {
                JOptionPane.showMessageDialog(null, "你的密码错误!");
                username.setText("");
                password.setText("");
                return;
            }
        }
    }                                         


    private void btn_resetActionPerformed(java.awt.event.ActionEvent evt) {                                          
        username.setText("");
        password.setText("");
    }                                         
    public static Login getLogins(String name) {
//        List<Login> logins = new ArrayList<>();
        Login login = null;
        String sql = "select * from yonghu where user_name='" + name + "'";
        try (Connection con = JDBC.getConnection();
                Statement stmt = con.createStatement();
                ResultSet rs = stmt.executeQuery(sql);) {
            while (rs.next()) {
                login = new Login();
                login.setLogin_name(rs.getString("user_name"));
                login.setPass_word(rs.getString("pass_word"));
//                String loginname = rs.getString("loginname");
//                String loginpassword = rs.getString("loginpassword");
//                login.add(login);
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        return login;
    }


    public static void main(String args[]) {


        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new LoginFrame().setVisible(true);
            }
        });
    }


    // Variables declaration - do not modify                     
    private javax.swing.JButton btn_login;
    private javax.swing.JButton btn_reset;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPasswordField password;
    private javax.swing.JTextField username;
    // End of variables declaration                   


    private String getPass_word() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
}

  • 8
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在使用Django进行账号注册和登陆时,需要通过连接数据库的方式来存储用户的信息。Django内置了多种数据库支持,例如SQLite、MySQL和PostgreSQL等。 首先,需要在settings.py文件配置DATABASES,指定所使用的数据库类型、用户名和密码等信息。配置完成后,Django会在底层自动使用ORM(Object Relational Mapping)与数据库进行交互。 接下来,创建一个models.py文件,定义用户模型。用户模型应该包含注册和登陆时所需要的字段,例如用户名、密码等。通过继承Django内置的AbstractBaseUser类和PermissionsMixin类,可以方便地利用Django提供的身份验证系统。 然后,在views.py文件编写视图函数。注册视图函数需要通过表单接受用户提交的信息,并调用模型的create_user方法创建新用户。登陆视图函数需要对用户提交的用户名和密码进行校验,并调用Django内置的authenticate方法进行身份验证。 最后,在urls.py文件将视图函数与url路径进行映射。用户访问/url/register时会调用注册视图函数,访问/url/login时会调用登陆视图函数。 通过上述步骤,就可以在Django建立账号注册登陆界面连接数据库进行用户信息的存储和验证。同时,Django还提供了丰富的身份验证和权限控制功能,方便开发者进行二次开发和扩展。 ### 回答2: Django连接数据库建立账号注册登录界面可以通过Django框架的多种数据存储引擎来实现,包括MySQL,PostgreSQL,SQLite等。首先,在项目配置文件指定所需的数据库类型和相关配置信息,例如数据库名称、用户名、密码、主机名等。然后在Django项目新建一个应用程序,包含如注册、登录等主要功能,并设计相应的模型类,如User等。 在新建的应用程序,通过编写视图处理函数和URL路由映射,来实现注册、登录等业务逻辑。对于用户注册,在前端界面设计,需要包含用户名、密码、邮箱等注册信息,并对输入的信息进行验证和存储。通过验证码等方法防止机器人注册账号。在后端逻辑方面,需要处理注册信息,包括验证用户输入的各项信息是否合法、用户名或邮箱是否被占用等,最后将用户信息存储到数据库,并向用户发送验证邮件等方式完成账号激活。 在用户登录方面,需要处理用户输入的用户名和密码并进行验证,从数据库获取相应用户信息,判断密码是否正确,若验证成功,则将用户信息保存到会话,实现用户的持久化登录。同时需要实现退出登录的逻辑,将用户信息从会话删除。 此外,为了保证用户信息安全性,需要对密码进行加密存储,可使用Django提供的默认密码哈希算法或自定义加密方式。对于输入的敏感信息,则可以使用Django提供的表单验证功能进行验证,如验证邮箱格式等。 综上,使用Django框架连接数据库建立账号注册登录界面需要针对具体业务需求进行设计和开发,从数据模型、表单验证、前后端交互等多个层面来实现用户账号的注册和登录功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值