SQLManager
package com.donghe.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 數據庫連接
*
* @author Administrator
*
*/
public class SQLManager {
public Statement statement;
private static SQLManager manager;
private Connection conn;
public static synchronized SQLManager newInstance() {
if (manager == null) {
manager = new SQLManager();
}
return manager;
}
private SQLManager() {
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/clazz";
String user = "root";
String password = "201216328";
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, user, password);
if (!conn.isClosed()) {
statement = conn.createStatement();
statement.execute(
"create table if not exists user(id int(11) not null primary key auto_increment,user_name varchar(30) binary not null,password varchar(30) binary not null)");
} else {
System.out.println("請打開數據庫");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
public Statement getStatement() {
return statement;
}
public void setStatement(Statement statement) {
this.statement = statement;
}
public Connection getConn() {
return conn;
}
public void setConn(Connection conn) {
this.conn = conn;
}
}
SQLOperate
package com.donghe.test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class SQLOperate {
private static SQLOperate operate;
private SQLOperate(){
}
public static synchronized SQLOperate newinstance(){
if(operate==null){
operate=new SQLOperate();
}
return operate;
}
private boolean isSignIn=false;
/**
* 功能:判斷是否登陸成功
* @param userName 用戶賬號
* @param password 用戶密碼
* @return true登陸成功 false登錄失敗
*/
public boolean signIn(String userName,String password){
Connection connection=SQLManager.newInstance().getConn();
try {
if(!connection.isClosed()){
PreparedStatement preparedStatement=connection.prepareStatement("select * from user where user_name= ? and password= ?");
preparedStatement.setString(1, userName);
preparedStatement.setString(2, password);
ResultSet set=preparedStatement.executeQuery();
set.last();
int num=set.getRow();
return num==1;
}
} catch (SQLException e1) {
e1.printStackTrace();
}
return isSignIn=false;
}
}
Register
package com.donghe.test;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JLabel;
public class Register extends JFrame {
private JPanel contentPane;
private JTextField textFieldUserName;
private JTextField textFieldPassword;
private static Register frame;
boolean isRight = false;
boolean isRight2 = false;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
frame = new Register();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Register() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
textFieldUserName = new JTextField();
textFieldUserName.setBounds(129, 29, 168, 36);
contentPane.add(textFieldUserName);
textFieldUserName.setColumns(10);
textFieldPassword = new JTextField();
textFieldPassword.setBounds(129, 90, 168, 36);
contentPane.add(textFieldPassword);
textFieldPassword.setColumns(10);
JButton btnNewButton = new JButton("提交");
btnNewButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String userName = textFieldUserName.getText();
String password = textFieldPassword.getText();
while (true) {
Pattern p = Pattern.compile("^\\w{6,16}$");
Matcher m = p.matcher(userName);
isRight = m.matches();
if (isRight) {
Pattern p1 = Pattern.compile("^\\w{6,16}$");
Matcher m1 = p.matcher(password);
isRight2 = m1.matches();
if (isRight2) {
Statement state = SQLManager.newInstance().statement;
String sql = "select * from user where user_name='" + userName + "'";
try {
ResultSet set = state.executeQuery(sql);
set.last();
int num = set.getRow();
if (num > 0) {
System.out.println("該用戶已存在");
return;
} else {
String register = "insert into user(user_name,password) values ('" + userName
+ "','" + password + "')";
state.execute(register);
System.out.println("註冊成功");
SignIn si=new SignIn();
Frame frame=si.getFrame();
frame.setVisible(true);
return;
}
} catch (SQLException e1) {
e1.printStackTrace();
}
}
} else {
System.out.println("你的輸入不規範,請重新輸入");
textFieldUserName.setText("");
textFieldPassword.setText("");
return;
}
}
}
});
btnNewButton.setBounds(129, 155, 168, 36);
contentPane.add(btnNewButton);
JLabel lblNewLabel = new JLabel("用戶賬號");
lblNewLabel.setBounds(27, 29, 68, 36);
contentPane.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("用戶密碼");
lblNewLabel_1.setBounds(27, 100, 68, 26);
contentPane.add(lblNewLabel_1);
}
public static Register getFrame() {
frame = new Register();
return frame;
}
public static void setFrame(Register frame) {
Register.frame = frame;
}
}
SignIn
package com.donghe.test;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.event.AncestorEvent;
import javax.swing.event.AncestorListener;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.print.attribute.ResolutionSyntax;
import javax.swing.JButton;
public class SignIn extends JFrame {
private JPanel contentPane;
private JTextField textFieldUserName;
private JTextField textFieldPassword;
private static SignIn frame;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
frame = new SignIn();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public SignIn() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
textFieldUserName = new JTextField();
textFieldUserName.setBounds(157, 42, 170, 33);
contentPane.add(textFieldUserName);
textFieldUserName.setColumns(10);
textFieldPassword = new JTextField();
textFieldPassword.setBounds(157, 106, 170, 33);
contentPane.add(textFieldPassword);
textFieldPassword.setColumns(10);
JLabel lblNewLabel = new JLabel("用戶賬號");
lblNewLabel.setBounds(66, 46, 54, 24);
contentPane.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("用戶密碼");
lblNewLabel_1.setBounds(66, 110, 54, 24);
contentPane.add(lblNewLabel_1);
JButton btnNewButton = new JButton("登錄");
btnNewButton.setBounds(157, 167, 80, 33);
contentPane.add(btnNewButton);
JButton btnNewButton_1 = new JButton("註冊");
btnNewButton_1.setBounds(260, 167, 67, 28);
contentPane.add(btnNewButton_1);
btnNewButton_1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Register register=new Register();
Frame frame=register.getFrame();
frame.setVisible(true);
}
});
btnNewButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String userName=textFieldUserName.getText();
String password=textFieldPassword.getText();
boolean isSignIn=SQLOperate.newinstance().signIn(userName, password);
if(isSignIn){
System.out.println("登陸成功");
}else{
System.out.println("登錄失敗");
}
}
});
}
public static SignIn getFrame() {
frame = new SignIn();
return frame;
}
public static void setFrame(SignIn frame) {
SignIn.frame = frame;
}
}
RegisterSuccess
package com.donghe.test;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
public class RegisterSuccess extends JFrame {
private JPanel contentPane;
private static RegisterSuccess frame;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
frame = new RegisterSuccess();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public RegisterSuccess() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 250, 190);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblNewLabel = new JLabel("恭喜你註冊成功!");
lblNewLabel.setBounds(62, 43, 193, 61);
contentPane.add(lblNewLabel);
}
public static RegisterSuccess getFrame() {
frame = new RegisterSuccess();
return frame;
}
public static void setFrame(RegisterSuccess frame) {
RegisterSuccess.frame = frame;
}
}