java JDBC的问题!有一个包已经 sqljdbc.jar 包导入了

我这要怎么弄啊!
2024-12-15 15:30:28
推荐回答(5个)
回答1:

//JDBC封装类 各种方法
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;

/**
* 学习(听,看)、思考(想)、行动(编码)、反思(改)
* */

public class JDBCTools implements IJDBCTools {

private Connection conn = null;
private Statement stmt = null;

private void getConnection() {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn = DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;DatabaseName=数据库名", "登录名", "密码");
stmt = conn.createStatement();
} catch (Exception e) {
e.printStackTrace();
}
}
//增删改
public int update(String updateSql) {
int rows = 0;
try {
//先调用获取连接的方法
getConnection();

rows = stmt.executeUpdate(updateSql);

close();
} catch (Exception e) {
e.printStackTrace();
rows = -1;
}
return rows;
}
//查询
public LinkedList> find(String findSql) {
LinkedList> rsList = null;
try {
rsList = new LinkedList>();

getConnection();
ResultSet rs = stmt.executeQuery(findSql);

ResultSetMetaData rsmd = rs.getMetaData();

while (rs.next()) {
Map rsMap = new HashMap();
for (int i = 0; i < rsmd.getColumnCount(); i++) {
//根据i+1的索引找到对应的地段的名字
String columnName = rsmd.getColumnName(i+1);
//再根据字段名找到对应的字段值
String columnValue = rs.getString(columnName);
//以字段名为key,字段值为value存储到map中
rsMap.put(columnName, columnValue);
}
rsList.add(rsMap);
}

rs.close();
close();
} catch (Exception e) {
e.printStackTrace();
}
return rsList;
}

//批量管理
public boolean batch(ArrayList sqlList) {
try {
getConnection();

for (int i = 0; i < sqlList.size(); i++) {
stmt.addBatch(sqlList.get(i));
}

stmt.executeBatch();

close();
} catch (Exception e) {
e.printStackTrace();
}
return true;
}

private void close() {
try {
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

回答2:

connection 的import 应该是 :import java.sql.Connection;

你DriverManager import了没有?
还有,直接 ct.preparedStatement(select * from test); 就好了,不需要转换。

回答3:

你导入的Connection类不对,应该导入java.sql.Connection 而不是com.sun.conba……下面的Connection类

回答4:

很明显你的数据库驱动报导错了!!!
应该是:
import java.sql.Connection;
import java.sql.DriverManager;

回答5:

你把鼠标方在红X的地方,看他提示什么东东