StuModel.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package C;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.ResultSet;
  5. import java.sql.Statement;
  6. import java.util.Vector;
  7. import javax.swing.table.*;
  8. public class StuModel extends AbstractTableModel{
  9. //rowData存放行数据,columnNames存放列名
  10. Vector rowData,columnNames;
  11. //定义连接数据库的变量
  12. Statement stat = null;
  13. Connection ct = null;
  14. ResultSet rs = null;
  15. //初始化
  16. public void init(String sql){
  17. if(sql.equals("")){
  18. sql = "select * from stu";
  19. }
  20. //中间
  21. //设置列名
  22. columnNames = new Vector();
  23. columnNames.add("设备ID");
  24. columnNames.add("设备名称");
  25. columnNames.add("大小");
  26. columnNames.add("重量");
  27. columnNames.add("供应商");
  28. columnNames.add("价格");
  29. //rowData存放多行
  30. rowData = new Vector();
  31. try{
  32. //1.加载驱动
  33. Class.forName("com.mysql.jdbc.Driver");
  34. System.out.println("加载成功");
  35. //2.连接数据库
  36. //定义几个常量
  37. String url = "jdbc:mysql://localhost:3306/spdb1";
  38. String user = "root";
  39. String passwd = "qsefthuko";
  40. ct = DriverManager.getConnection(url,user,passwd);
  41. stat = ct.createStatement();//创建stat对象
  42. rs = stat.executeQuery(sql);//查询结果
  43. while(rs.next()){
  44. Vector hang = new Vector();
  45. hang.add(rs.getString(1));
  46. hang.add(rs.getString(2));
  47. hang.add(rs.getString(3));
  48. hang.add(rs.getInt(4));
  49. hang.add(rs.getString(5));
  50. hang.add(rs.getString(6));
  51. //加入到rowData中
  52. rowData.add(hang);
  53. }
  54. }catch(Exception e){
  55. e.printStackTrace();
  56. }finally{
  57. try{
  58. if(rs!=null){
  59. rs.close();
  60. rs = null;
  61. }
  62. if(stat != null){
  63. stat.close();
  64. stat = null;
  65. }
  66. if(ct != null){
  67. ct.close();
  68. ct = null;
  69. }
  70. }catch(Exception e){
  71. e.printStackTrace();
  72. }
  73. }
  74. }
  75. //增加函数
  76. public void addStu(String sql){
  77. //根据用户输入的sql语句,完成添加任务
  78. }
  79. //第二个构造函数,通过传递的sql语句来获得数据模型
  80. public StuModel(String sql){
  81. this.init(sql);
  82. }
  83. //构造函数,用于初始化我的数据模型(表)
  84. public StuModel(){
  85. this.init("");
  86. }
  87. //得到共有多少行
  88. public int getRowCount() {
  89. // TODO Auto-generated method stub
  90. return this.rowData.size();
  91. }
  92. //得到共有多少列
  93. public int getColumnCount() {
  94. // TODO Auto-generated method stub
  95. return this.columnNames.size();
  96. }
  97. //得到某行某列的数据
  98. public Object getValueAt(int row, int column) {
  99. // TODO Auto-generated method stub
  100. return ((Vector)(this.rowData.get(row))).get(column);
  101. }
  102. //得到属性名字
  103. public String getColumnName(int column) {
  104. // TODO Auto-generated method stub
  105. return (String)this.columnNames.get(column);
  106. }
  107. }