Table01
package sample;
import javafx.application.Application;
import javafx.beans.Observable;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.FlowPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.stage.Stage;
import javax.tools.Tool;
import java.sql.*;
public class Table01 extends Application {
//上半部分
VBox vAll = new VBox();
VBox vb = new VBox();
HBox h1 = new HBox();
HBox h2 = new HBox();
HBox h3 = new HBox();
TextField tfName = new TextField();
TextField tfTel1 = new TextField();
TextField tfTel2 = new TextField();
TextField tfEmail = new TextField();
Button btAdd = new Button("新增");
Button btQuery = new Button("查询");
Button btChange = new Button("更改");
Button btDel = new Button("删除");
TableView table = new TableView();
//下半部分
TableColumn idCol = new TableColumn("序号");
TableColumn nameCol = new TableColumn("姓名");
TableColumn tel1Col = new TableColumn("手机");
TableColumn tel2Col = new TableColumn("办公电话");
TableColumn emailCol = new TableColumn("邮箱");
//文本框中的信息
String sName = tfName.getText();
String sTel1 = tfTel1.getText();
String sTel2 = tfTel2.getText();
String sEmail = tfEmail.getText();
//数据
final ObservableList<Person> data = FXCollections.observableArrayList();
@Override
public void start(Stage stage) {
stage.setTitle("Table View Sample");
stage.setWidth(450);
stage.setHeight(600);
//上半部分
h1.getChildren().addAll(new Label("姓名:"),tfName,new Label("手机:"),tfTel1);
h2.getChildren().addAll(new Label("办公电话:"),tfTel2,new Label("邮箱:"),tfEmail);
h3.getChildren().addAll(btAdd,btChange,btQuery,btDel);
h3.setSpacing(40);
h3.setAlignment(Pos.TOP_CENTER);
vb.getChildren().addAll(h1,h2,h3);
vb.setSpacing(10);
table.setEditable(true);
//设置自动拉满 table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
//下半部分
table.getColumns().addAll(idCol,nameCol,tel1Col,tel2Col,emailCol);
//列与person类绑定
idCol.setCellValueFactory(new PropertyValueFactory<Person,String>("id"));
nameCol.setCellValueFactory(new PropertyValueFactory<Person,String>("name"));
tel1Col.setCellValueFactory(new PropertyValueFactory<Person,String>("tel1"));
tel2Col.setCellValueFactory(new PropertyValueFactory<Person,String>("tel2"));
emailCol.setCellValueFactory(new PropertyValueFactory<Person,String>("email"));
//合并
VBox vbox = new VBox();
vbox.setSpacing(5);
vbox.setPadding(new Insets(10, 0, 0, 10));
vbox.getChildren().addAll(vb,table);
Scene scene = new Scene(new Group());
((Group) scene.getRoot()).getChildren().addAll(vbox);
stage.setScene(scene);
stage.show();
btAdd.setOnAction(e->{
add();
});
btDel.setOnAction(e->{
del();
});
btQuery.setOnAction(e->{
query();
});
btChange.setOnAction(e->{
change();
});
}
public static void main(String[] args) {
launch(args);
}
public boolean IsIntact(){
//判断是否
sName = tfName.getText();
sTel1 = tfTel1.getText();
sTel2 = tfTel2.getText();
sEmail = tfEmail.getText();
if(sName.equals("")||sTel1.equals("")||sTel2.equals("")||sEmail.equals("")){
System.out.println("请输入正确的查询信息");
return true;
}
return false;
}
public void clean(){
tfName.clear();
tfTel1.clear();
tfTel2.clear();
tfEmail.clear();
}
public Boolean isSpecification(){
sTel1 = tfTel1.getText();
for(char c:sTel1.toCharArray()){
if(!Character.isDigit(c)||sTel1.length()!=11){
Stage stage = new Stage();
stage.setScene((new Scene(new Label(" 电话号错误!"),200,200)));
stage.show();
return false;
}
}
sTel2 = tfTel2.getText();
for(char c:sTel2.toCharArray()){
if(!Character.isDigit(c)){
Stage stage = new Stage();
stage.setScene((new Scene(new Label(" 座机号错误!"),200,200)));
stage.show();
return false;
}
}
sEmail = tfEmail.getText();
int cotain = 0;
for(char c:sEmail.toCharArray()){
if(c=='@')
cotain++;
if(!(Character.isDigit(c)||Character.isAlphabetic(c)||c=='@'||c=='.')){
Stage stage = new Stage();
System.out.println(c);
stage.setScene((new Scene(new Label(" 1.邮箱错误!"),200,200)));
stage.show();
return false;
}
}
if(cotain != 1){
Stage stage = new Stage();
stage.setScene((new Scene(new Label(" 2.邮箱错误!"),200,200)));
stage.show();
return false;
}
return true;
}
public void refresh(DataBaseUtil db){
try {
ResultSet rs = db.queryExecute("SELECT * FROM Person");
data.clear();
Tools.count = 1;
while(rs.next()) {
Person pp = null;
pp = new Person(rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5));
data.add(pp);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
table.setItems(data);
}
public void refresh(DataBaseUtil db,String sql){
try {
ResultSet rs = db.queryExecute(sql);
data.clear();
Tools.count = 1;
while(rs.next()) {
Person pp = null;
pp = new Person(rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5));
data.add(pp);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
table.setItems(data);
}
public void add() {
if(IsIntact())
return;
if(isSpecification()==false)
return;
if(Tools.list.contains(sName)) {
System.out.println("有重名者,看看是否添加重复了!");
}
Tools.list.add(sName);
Person p = new Person(sName,sTel1,sTel2,sEmail);
String sql = "insert into Person (id,name,tel1,tel2,email) values (?,?,?,?,?)";
DataBaseUtil db = new DataBaseUtil();
boolean b = db.updateExecute(sql,new String[]{
p.id,p.name,p.tel1,p.tel2,p.email});
refresh(db);
clean();
}
public void change(){
if(IsIntact())
return;
sName = tfName.getText();
String sql = "update Person set id=?,name=?,tel1=?,tel2=?,email=? where name = '"+sName+"' ";
DataBaseUtil db = new DataBaseUtil();
db.updateExecute(sql,new String[]{
tfName.getText(),tfName.getText(),tfTel1.getText(),tfTel2.getText(),tfEmail.getText()});
refresh(db);
clean();
}
public void query(){
String sql = "select * from Person where name = '"+tfName.getText()+"' ";
DataBaseUtil db = new DataBaseUtil();
db.queryExecute(sql);
Tools.count = 1;
refresh(db,sql);
clean();
}
public void del(){
sName = tfName.getText();
String sql = "delete from Person where name = ?";
data.clear();
DataBaseUtil db = new DataBaseUtil();
db.updateExecute(sql,new String[] {
sName});
Tools.count = 1;
refresh(db);
table.setItems(data);
clean();
}
}
Person
package sample;
import javafx.beans.property.SimpleStringProperty;
import java.util.HashMap;
public class Person {
String id;
String name;
String tel1;
String tel2;
String email;
public Person(String name, String tel1, String tel2, String email) {
this.id = String.valueOf(Tools.count++);
this.name = name;
this.tel1 = tel1;
this.tel2 = tel2;
this.email = email;
}
public Person(String id, String name, String tel1, String tel2, String email) {
this.id = id;
this.name = name;
this.tel1 = tel1;
this.tel2 = tel2;
this.email = email;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTel1() {
return tel1;
}
public void setTel1(String tel1) {
this.tel1 = tel1;
}
public String getTel2() {
return tel2;
}
public void setTel2(String tel2) {
this.tel2 = tel2;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
DataBaseUtil
package sample;
import java.sql.*;
public class DataBaseUtil {
//2.通过DriverManager获取数据库连接
// String url = "jdbc:mysql://localhost:3306/label?sever";
String url = "jdbc:mysql://localhost:3306/label?severTimezone=GMT%2B8";
String driver = "com.mysql.cj.jdbc.Driver";
String user = "root";
String password = "wenchi0124";
Connection conn = null;
ResultSet rs = null;
Statement statement = null;
PreparedStatement ps = null;
public DataBaseUtil() {
try {
conn = DriverManager.getConnection(url,user,password);
System.out.println("line success");
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
public void close(){
try{
if(rs != null){
rs.close();
}
if(ps != null){
ps.close();
}
if(statement != null){
statement.close();
}
if(conn != null){
conn.close();
}
}
catch (SQLException throwables) {
throwables.printStackTrace();
}
finally {
// this.close();
}
}
public ResultSet queryExecute(String sql) {
try {
Class.forName(driver);
System.out.println("success01");
statement = conn.createStatement();
rs = statement.executeQuery(sql);
return rs;
}catch (Exception ex){
ex.printStackTrace();
return null;
}
finally {
// this.close();
}
}
//重载
public ResultSet queryExecute2(String sql,String[] paras){
try {
Class.forName(driver);
System.out.println("success02");
// conn = DriverManager.getConnection(url,user,password);
ps = conn.prepareStatement(sql);
for(int i =0;i < paras.length;i++){
ps.setString(i+1,paras[i]);
}
rs = ps.executeQuery();
return rs;
}catch (Exception ex){
ex.printStackTrace();
}
finally {
this.close();
}
return null;
}
public boolean updateExecute(String sql,String[] paras){
boolean b = true;
try {
Class.forName(driver);
System.out.println("success03");
// conn = DriverManager.getConnection(url,user,password);
ps = conn.prepareStatement(sql);
for(int i =0;i < paras.length;i++){
ps.setString(i+1,paras[i]);
}
if(ps.executeLargeUpdate() != 1){
b = false;
}
}catch (Exception ex){
b = false;
ex.printStackTrace();
}
finally {
// this.close();
}
return b;
}
}
Tools
package sample;
import java.util.*;
public class Tools {
public static int count = 1;
public static List<String> list = new ArrayList<>();
// @Override
// public static boolean Contain(List<String> l,String s){
// boolean flag = false;
// for(String tStr: l){
// if(tStr.equals(s)){
// System.out.println("c: " + tStr +"and"+ s);
// flag = true;
// }
// }
// return flag;
// }
}
show databases;
create database educational_administration;
create database label;
use educational_administration;
create table Student
(
SId varchar(10) PRIMARY KEY,
Sname Varchar(10) NOT NULL,
Sage datetime,
Ssex varchar(10) NOT NULL
);
desc Student;
use mysql;
show tables;
use label;
DROP table Person;
create table Person
(
id varchar(30),
name varchar(30),
tel1 varchar(30),
tel2 varchar(30),
email varchar(30)
);
create table tmpPerson
(
id varchar(30),
name varchar(30),
tel1 varchar(30),
tel2 varchar(30),
email varchar(30)
);
show variables like'%time_zone';
set global time_zone = '+8:00';
select database();
select * from Person;
drop table Person;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'wenchi0124';
FLUSH PRIVILEGES ;
update Person set name='t' ,id='t' ,tel1='t' ,tel2='t' ,email='t' where name = 'g';