package com.lingzhuo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Sql {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/class";
String user = "root";
String password = "123456";
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(url, user, password);
if (!conn.isClosed()) {
Statement st = conn.createStatement();
String select = "select * from person";
ResultSet rs = st.executeQuery(select);
// String insert="insert into person (name,sex) values('张三',1)";
// st.execute(insert);
// String delete="delete from person where id=1";
// st.execute(delete);
// String update="update from person set id=1 where name='李四'";
// st.execute(update);
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
单例模式
##注册界面##
package com.lingzhuo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class SqlManager {
/*
* 单例设计模式
*/
private Statement statement;
public Statement getStatement() {
return statement;
}
/*
* 当构造器私有时不能通过new去创建一个对象,通过自己建的一个方法去创建对象
* 这样就只能创建一个对象
*/
private static SqlManager manager;
public static synchronized SqlManager newInstance(){
if(manager==null){
manager=new SqlManager();
}
return manager;
}
private SqlManager(){
String url="jdbc:mysql://localhost:3306/class";
String user="root";
String password="123456";
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection(url,user,password);
if(!conn.isClosed()){
statement=conn.createStatement();
String createtable="create table if not exists user"
+ "(id int(2) not null primary key auto_increment,name varchar(20),password varchar(10))";
statement.execute(createtable);
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.lingzhuo;
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;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JButton;
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 java.awt.event.ActionEvent;
public class Register extends JFrame {
private JPanel contentPane;
private JTextField textFieldPassword;
private JButton btnNewButton;
private JTextArea textAreaUserName ;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Register 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);
JLabel lblNewLabel = new JLabel("用户名");
lblNewLabel.setBounds(35, 42, 54, 15);
contentPane.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("密码");
lblNewLabel_1.setBounds(35, 100, 54, 15);
contentPane.add(lblNewLabel_1);
textAreaUserName = new JTextArea();
textAreaUserName.setBounds(139, 38, 116, 24);
contentPane.add(textAreaUserName);
textFieldPassword = new JTextField();
textFieldPassword.setBounds(139, 97, 120, 21);
contentPane.add(textFieldPassword);
textFieldPassword.setColumns(10);
btnNewButton = new JButton("注册");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//得到用户名
String UserName=textAreaUserName.getText().toString();
//用正则表达式验证用户名
Pattern p = Pattern.compile("^\\S$");
Matcher m = p.matcher(UserName);
boolean b = m.matches();
System.out.println("用户名"+b);
//得到密码
String UserPassword=textFieldPassword.getText().toString();
//用正则表达式验证密码
Pattern p1 = Pattern.compile("^\\S$");
Matcher m1 = p.matcher(UserPassword);
boolean b1 = m.matches();
System.out.println("密码"+b1);
Statement state=SqlManager.newInstance().getStatement();
String select="select count(*) from user where name='"+UserName+"'";
try {
ResultSet rs=state.executeQuery(select);
rs.first();
int num =rs.getInt(1);
if(num>0){
System.out.println("该用户已存在");
}else{
String insert="insert into user(name,password) values('"+UserName+"','"+UserPassword+"')";
state.execute(insert);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
btnNewButton.setBounds(136, 160, 93, 23);
contentPane.add(btnNewButton);
}
}
##登录界面##
package com.lingzhuo;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.TextArea;
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;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.awt.event.ActionEvent;
public class Login extends JFrame {
private JPanel contentPane;
private JTextField textFieldUserName;
private JTextField textFieldPassword;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Login frame = new Login();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Login() {
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(154, 57, 120, 29);
contentPane.add(textFieldUserName);
textFieldUserName.setColumns(10);
textFieldPassword = new JTextField();
textFieldPassword.setBounds(154, 115, 120, 29);
contentPane.add(textFieldPassword);
textFieldPassword.setColumns(10);
JButton btnNewButton = new JButton("\u767B\u5F55");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String userName=textFieldUserName.getText();
String password=textFieldPassword.getText();
Statement sta=SqlManager.newInstance().getStatement();
String sql="select *from user where name='"+userName+"'and password='"+password+"'";
try {
ResultSet rs=sta.executeQuery(sql);
rs.last();
int num=rs.getRow();
if(num!=0){
System.out.println("登录成功");
}else{
System.out.println("登录失败");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
btnNewButton.setBounds(164, 168, 93, 29);
contentPane.add(btnNewButton);
JLabel lblNewLabel = new JLabel("\u7528\u6237\u540D");
lblNewLabel.setBounds(79, 60, 54, 22);
contentPane.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("\u5BC6 \u7801");
lblNewLabel_1.setBounds(79, 115, 54, 29);
contentPane.add(lblNewLabel_1);
}
}
##查询界面##
package com.lingzhuo.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;
import javax.swing.JTextField;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JList;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.awt.event.ActionEvent;
public class Query extends JFrame {
private JPanel contentPane;
private JTextField textField;
private Statement state;
private DefaultListModel<String> model;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Query frame = new Query();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Query() {
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);
JLabel lblNewLabel = new JLabel("用户名");
lblNewLabel.setBounds(28, 39, 70, 27);
contentPane.add(lblNewLabel);
textField = new JTextField();
textField.setBounds(108, 35, 138, 36);
contentPane.add(textField);
textField.setColumns(10);
JButton btnNewButton = new JButton("查询");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String id=textField.getText();
state=SqlManager.newInstance().getManager();
String select="select * from student where id='"+id+"'";
try {
ResultSet rs=state.executeQuery(select);
rs.last();
int num=rs.getRow();
if(num!=0){
String information=rs.getString("name");
String information1=rs.getString("password");
model.addElement(information);
model.addElement(information1);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
btnNewButton.setBounds(272, 37, 115, 30);
contentPane.add(btnNewButton);
JList list = new JList();
list.setBounds(97, 95, 180, 100);
model=new DefaultListModel<String>();
list.setModel(model);
contentPane.add(list);
}
}