Java(Gui)連接Sql Server 登錄案例


GUI連接Sql Server數據庫實現用戶

注意:這個連接需要一個jar包,下載之后需要導入到自己的java項目加載,用於java連接數據庫

地址:鏈接:https://pan.baidu.com/s/1yCxfo0iNvMa1P0xPqhakDg 提取碼:1111

步驟1(數據庫操作)

--創建數據庫
create database jdbcmmsql
use jdbcmmsql
--創建表
create table user_t
(
	id int not null primary key,
	name varchar(20) not null,
	pwd varchar(32) not null,
	sex char(2),
	age int
)
--插入數據
insert into user_t
values
(1,'123','123456','女',22)

步驟2(java操作)

2.1構建java與Sql server的連接

package Gui.db;
import java.sql.Connection;
import java.sql.DriverManager;
public class DbHelper {
    Connection conn = null;
    public DbHelper() {
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            //這里要根據自己的 庫名,賬號,密碼連接。
            conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=jdbcmmsql", "sa", "123456Mssql");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public Connection getConn() {
        return conn;
    }
}

2.2創建實體類

package Gui.entity;

public class User {
    private int id;
    private String name;
    private String pwd;
    private String sex;
    private int age;
    public User() {
    }
    public User(int id, String name, String pwd, String sex, int age) {
        this.id = id;
        this.name = name;
        this.pwd = pwd;
        this.sex = sex;
        this.age = age;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPwd() {
        return pwd;
    }
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

2.3接口層(dao)

package Gui.dao;
import Gui.entity.User;
import java.util.List;
public interface UserDao {
    //增
    public boolean addEmp(User emp);
    //刪
    public int delEmp(int id);
    //改
    public int updEmp(User emp);
    //單查
    public User findone(String user,String pwd);
    //查
    public List<User> findAll();
}

接口實現類

只實現了一部分

package Gui.dao;

import Gui.db.DbHelper;
import Gui.entity.User;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class UserDaoImpl implements UserDao{
    Connection conn;
    PreparedStatement ps;
    ResultSet rs;
    //增加
    public boolean addEmp(User user) {
        boolean flag = false;
        conn = new DbHelper().getConn();
        String sql = "insert into user_t(id,name,pwd,sex,age) values(?,?,?,?,?)";
        try {
            ps = conn.prepareStatement(sql);
            ps.setInt(1, user.getId());
            ps.setString(2, user.getName());
            ps.setString(3, user.getSex());
            ps.setInt(4, user.getAge());
            ps.setInt(5, user.getAge());
            if(ps.executeUpdate()>0) {
                flag = true;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return flag;
    }
    //刪除
    public int delEmp(int id) {
        return 0;
    }
    //修改
    public int updEmp(User emp) {
        return 0;
    }
    //單查,可用於登錄
    public User findone(String usera, String userpwd) {
        User user_t = null;
        conn = new DbHelper().getConn();
        String sql = "select name,pwd from user_t";
        try {
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
            while(rs.next()){
                user_t = new User();
                user_t.setName(rs.getString("name"));
                user_t.setPwd(rs.getString("pwd"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return user_t;
    }
    //全查
    public List<User> findAll() {
        List<User> ul = new ArrayList<User>();
        User user = null;
        conn = new DbHelper().getConn();
        String sql = "select * from user_t";
        try {
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
            while (rs.next()) {
                user = new User();
                user.setId(rs.getInt("id"));
                user.setName(rs.getString("name"));
                user.setPwd(rs.getString("pwd"));
                user.setSex(rs.getString("sex"));
                user.setAge(rs.getInt("age"));
                ul.add(user);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return ul;
    }
}

2.4登錄跳轉的新窗口

package Gui.Login;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/*
	登錄成功打開此窗口,有一個案例小游戲
*/
public class LoginYes {
    public LoginYes(){
        JFrame f = new JFrame("你登陸成功了,來玩個小游戲吧😀");
        f.setLayout(new FlowLayout());
        f.setBounds(300,400,500,200);
        //創建Lable標簽對象
        JButton j1 = new JButton("請輸入0-4的數字");
        //創建輸入框
        TextField tf = new TextField(40);
        f.add(tf);
        f.add(j1);
        tf.addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent e1) {
                j1.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e2) {
                        char ch = e1.getKeyChar();
                        switch (ch){
                            case '0':
                                j1.setText("zero");
                                break;
                            case '1':
                                j1.setText("one");
                                break;
                            case '2':
                                j1.setText("two");
                                break;
                            case '3':
                                j1.setText("three");
                                break;
                            case '4':
                                j1.setText("four");
                                break;
                        }
                    }
                });
            }
        });
        f.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        f.setVisible(true);
    }
}

2.5運行類

package Gui;

import Gui.Login.LoginNo;
import Gui.Login.LoginYes;
import Gui.dao.UserDaoImpl;
import Gui.entity.User;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Test {
    public static void main(String[] args) {
        //創建JFrame實例
        JFrame jf = new JFrame("登陸界面");
        //設置框架的寬度和高度
        jf.setSize(350,200);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //創建面板,類似於HTML的div標簽
        JPanel panel = new JPanel();
        //添加面板
        jf.add(panel);
        //調用用戶定義的方法並添加組件到面板
        placeComponents(panel);
        //設置界面可見
        jf.setVisible(true);
    }

    private static void placeComponents(JPanel panel){
        panel.setLayout(null);
        //創建JLabel
        JLabel userlabel = new JLabel("賬號:");
        userlabel.setBounds(10,20,80,25);
        panel.add(userlabel);
        //創建文本域用於用戶輸入
        JTextField userText = new JTextField(20);
        userText.setBounds(100,20,165,25);
        panel.add(userText);
        //輸入密碼的文本域
        JLabel passwordLabel = new JLabel("密碼:");
        passwordLabel.setBounds(10,50,80,25);
        panel.add(passwordLabel);
        //密碼框--未用真正密碼框實現
        JTextField passwordText = new JTextField(20);
        passwordText.setBounds(100,50,165,25);
        panel.add(passwordText);
        //創建登錄按鈕
        JButton loginButton = new JButton("登錄");
        loginButton.setBounds(10,80,80,25);
        panel.add(loginButton);

        loginButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String user_str= userText.getText();
                String user_pwd = passwordText.getText();
                System.out.println(user_str);
                System.out.println(user_pwd);
                UserDaoImpl ud = new UserDaoImpl();
                User u = ud.findone(user_str,user_pwd);
                if(u.getName().equals(user_str) && u.getPwd().equals(user_pwd)){
                    new LoginYes();
                }else {
                    //登錄失敗這里會彈出來一個報錯的小對話框
                    JOptionPane.showMessageDialog(null, "請檢查賬號和密碼", "登錄失敗", JOptionPane.ERROR_MESSAGE);
                }
            }
        });
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM