Java编辑器上的Mysql链接与Table的结合
1.先建立sql的数据
(1).建立sql中student数据库表名为date
(2).date表中数据
2.先建立sql的链接
第一步:先加载mysql-connector-java-5.0.8.jar
链接:暂无
图片如下:
这是基于java1.7的sql链接.jar包
java1.7链接:暂无
图片如下:
下面是sqlconnect代码
package sql;
import java.sql.*;
public class sqlconnect {
private Connection con;
private PreparedStatement ghysql;
private ResultSet res; //返回的Result
public static void main(String[] args){
sqlconnect sql=new sqlconnect();
sql.getConnection();
}
//连接类
public Connection getConnection() {
try {
String Driver="com.mysql.jdbc.Driver";//链接驱动
Class.forName(Driver);
//第一个是链接sql的位置, 第二个是sql的登入账号 ,第三个是sql的登入密码
con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/student", "root", "");
System.out.println("数据库连接成功");
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
//关闭类
public void sqlclose(){
//在处理完结果集的时候再关闭连接,关掉连接后处理结果集会发生此错误。
if(ghysql !=null){
try{
ghysql.close();
System.out.println("释放并关闭了sql空间");
}catch(SQLException e){
System.err.println(e.getMessage());
}
ghysql=null;
}
}
}
jdbc:mysql://127.0.0.1:3306/student 中的student是我的数据库
2.建立Table与sql的关系
下面是table与sql共同作用代码
package Table;
import java.awt.Color;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;
import sql.sqlconnect;
public class table extends JFrame {
JPanel panel=(JPanel)getContentPane();
JTable table=new JTable();
JScrollPane jScrollpane=new JScrollPane(table);//可以上下拉的拉框
DefaultTableModel tablemodel=new DefaultTableModel();//table的模式tablemodel
String[] columnNames = {"学号","姓名", "专业","手机号"};
Vector setvec= new Vector();//创建集合类
String[][] tableValues;
JButton bnt=new JButton();
PreparedStatement Preparesql;
sqlconnect con=new sqlconnect();//sqlconnect 实例化
Connection conn; //定义Connection型的conn
public table(){
super("WDAIHY");郑州妇科医院 http://www.zykdfkyy.com/
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//直接可以点击×,关闭窗口
this.setSize(456, 418);//窗口大小
this.setLocationRelativeTo(null);//窗口居中
tablepaint();
Init();
this.setVisible(true);
}
public void tablepaint(){
Object[][] tableValues = {}; // 设定表格的字段
Vector vec = null;
tablemodel = new DefaultTableModel(tableValues, columnNames){
public boolean isCellEditable(int row , int column) {
// 表格不可编辑
return false;
}
};
conn=(Connection) con.getConnection();//链接数据库
try {
String Value_sql="select * from date";
Preparesql=conn.prepareStatement(Value_sql);
ResultSet res=Preparesql.executeQuery();//执行预处理语句
System.out.println(Value_sql);
while (res.next()) {
vec = new Vector();//创建在里面
//trim()去掉两端多余的空格,12非空
vec.add(res.getString("id_student").trim());
vec.add(res.getString("name"));
vec.add(res.getString("professional").trim());
vec.add(res.getString("phone"));
System.out.println("SearchTable"+vec);//观察数据
tablemodel.addRow(vec);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
con.sqlclose();//关闭数据库节省系统资源
}
}
public void Init(){
//利用tablemodel加载table
table=new JTable(tablemodel);//实例化table
jScrollpane.setBounds(10 ,10 ,430,300);//设置可以上下拉的拉框
panel.add(jScrollpane);//把拉框添加到panel显示
panel.add(table);//把table添加到panel显示
jScrollpane.getViewport().add(table, null);//把table放在唯一的jScrollpane上
//table设置
table.setRowSorter(new TableRowSorter< >(tablemodel));//排序器
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);//设置单选
table.setRowHeight(36);//行高
table.setGridColor(Color.blue);
table.setDragEnabled(true);
table.setSelectionForeground(Color.white);//选中之后的字体颜色
table.setSelectionBackground(Color.gray);//选中之后的周围颜色
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.setRowSelectionAllowed(true);
table.setShowVerticalLines(true);
table.getTableHeader().setReorderingAllowed(false);//表格列头不可移动
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new table();//运行
}
}
最后运行图片