提供给大家一个在java中连接数据库的方式:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Vector;
import javax.swing.table.AbstractTableModel;
public class ElectriciHomeSmartModel extends AbstractTableModel {
Vector rowData, columnNames ;
PreparedStatement ps=null;
Connection ct=null;
ResultSet rs=null;
public void init(String sql) {
columnNames=new Vector();
columnNames.add("家具列表:");//这里设置的是列名,相当于数据库表中的字段名
rowData=new Vector();
try {//这部分是重点
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//设置驱动
ct=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=SmartHome","sa","123456");//连接数据库,这里用个是jdbc的方式,是直接操作数据库的一种方式
ps=ct.prepareStatement(sql);//获得sql语句。
rs=ps.executeQuery();
while (rs.next()) {
//hang用来储存每一行各个字段的数据
Vector hang = new Vector();
hang.add(rs.getString(1));
hang.add(rs.getString(2));
hang.add(rs.getString(3));
//rowData用来储存一行的数据
rowData.add(hang);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
try {
if(rs!=null){
rs.close();
}
if (ps!=null) {
ps.close();
}
if (ct!=null) {
ct.close();
}
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
}
public ElectriciHomeSmartModel (String sql){
this.init(sql);
}
//用于获得行的数量
@Override
public int getRowCount() {
// TODO Auto-generated method stub
return this.rowData.size();
}
//用于获得列的数量
@Override
public int getColumnCount() {
// TODO Auto-generated method stub
return this.columnNames.size();
public String getColumnName(int arg0) {
// TODO Auto-generated method stub
return (String) this.columnNames.get(arg0);
}
//定位到某行某列中的一个数据
@Override
public Object getValueAt(int row, int column) {
// TODO Auto-generated method stub
return ((Vector)this.rowData.get(row)).get(column);
}
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Vector;
import javax.swing.table.AbstractTableModel;
public class ElectriciHomeSmartModel extends AbstractTableModel {
Vector rowData, columnNames ;
PreparedStatement ps=null;
Connection ct=null;
ResultSet rs=null;
public void init(String sql) {
columnNames=new Vector();
columnNames.add("家具列表:");//这里设置的是列名,相当于数据库表中的字段名
rowData=new Vector();
try {//这部分是重点
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//设置驱动
ct=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=SmartHome","sa","123456");//连接数据库,这里用个是jdbc的方式,是直接操作数据库的一种方式
ps=ct.prepareStatement(sql);//获得sql语句。
rs=ps.executeQuery();
while (rs.next()) {
//hang用来储存每一行各个字段的数据
Vector hang = new Vector();
hang.add(rs.getString(1));
hang.add(rs.getString(2));
hang.add(rs.getString(3));
//rowData用来储存一行的数据
rowData.add(hang);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
try {
if(rs!=null){
rs.close();
}
if (ps!=null) {
ps.close();
}
if (ct!=null) {
ct.close();
}
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
}
public ElectriciHomeSmartModel (String sql){
this.init(sql);
}
//用于获得行的数量
@Override
public int getRowCount() {
// TODO Auto-generated method stub
return this.rowData.size();
}
//用于获得列的数量
@Override
public int getColumnCount() {
// TODO Auto-generated method stub
return this.columnNames.size();
}
//用于获得字段名
@Overridepublic String getColumnName(int arg0) {
// TODO Auto-generated method stub
return (String) this.columnNames.get(arg0);
}
//定位到某行某列中的一个数据
@Override
public Object getValueAt(int row, int column) {
// TODO Auto-generated method stub
return ((Vector)this.rowData.get(row)).get(column);
}
}