展开全部
//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<Map<String, Object>> find(String findSql) {
LinkedList<Map<String, Object>> rsList = null;
try {
rsList = new LinkedList<Map<String, Object>>();
getConnection();
ResultSet rs = stmt.executeQuery(findSql);
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()) {
Map<String, Object> rsMap = new HashMap<String, Object>();
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<String> 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();
}
}
}
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<Map<String, Object>> find(String findSql) {
LinkedList<Map<String, Object>> rsList = null;
try {
rsList = new LinkedList<Map<String, Object>>();
getConnection();
ResultSet rs = stmt.executeQuery(findSql);
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()) {
Map<String, Object> rsMap = new HashMap<String, Object>();
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<String> 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();
}
}
}
展开全部
connection 的import 应该是 :import java.sql.Connection;
你DriverManager import了没有?
还有,直接 ct.preparedStatement(select * from test); 就好了,不需要转换。
你DriverManager import了没有?
还有,直接 ct.preparedStatement(select * from test); 就好了,不需要转换。
追问
报错:The method PreparedStatement(String) is undefined for the type Connection
{方法PreparedStatement (串)为类型连接是未定义}
追答
你第7行connection import 错误,应该是 import java.sql.Connection;
我刚才说错了,
第30行应该是: ps = ct.prepareStatement();
第32行应该是: rs = ps.executeQuery(select * from test);
建议:eclipse开发的话在点号后面,比如ct. 后面 ,光标移到这个地方,按 Alt+/ 会出现提示,选择你想要的方法,这样就不会出错了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你导入的Connection类不对,应该导入java.sql.Connection 而不是com.sun.conba……下面的Connection类
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很明显你的数据库驱动报导错了!!!
应该是:
import java.sql.Connection;
import java.sql.DriverManager;
应该是:
import java.sql.Connection;
import java.sql.DriverManager;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把鼠标方在红X的地方,看他提示什么东东
更多追问追答
追问
这是什么情况啊??????????
追答
你导入的包不对啊, connection不对
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询