请提供一个SQL语句传入—就可执行对数据库增删查改等功能的类的方法

 我来答
匿名用户
2013-08-11
展开全部
public class DbManager { // 数据库名
final String database = "bbs"; // 数据库连接方法
final ConnectionType mode = ConnectionType.JDBC_MICROSOFT; // 服务器IP
final String server = "127.0.0.1"; // 用户名
final String userName = "sa"; // 密码
final String password = ""; private Connection conn = null; /**
* 打开数据库连接
*/
public DbManager() {
try {
// 桥连接
if (mode == ConnectionType.JDBC_ODBC_BRIDGE) {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:driver=sql server;server=" + server
+ ";database=" + database;
conn = DriverManager
.getConnection(url, userName, password);
} // JDBC连接
if (mode == ConnectionType.JDBC_MICROSOFT) {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url = "jdbc:microsoft:sqlserver://" + server
+ ":1433;DatabaseName=" + database;
conn = DriverManager
.getConnection(url, userName, password);
}
System.out.println("创建连接");
} catch (ClassNotFoundException ex) {
System.out.println("数据库联接失败,详细信息为:" + ex.getMessage());
} catch (SQLException ex) {
System.out.println("数据库联接失败,详细信息为:" + ex.getMessage());
}
} /**
* 启动事务
*/
public void beginTransaction() {
try {
conn.setAutoCommit(false);
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
} /**
* 提交事务
*/
public void commitTransaction() {
try {
conn.commit();
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
} /**
* 回滚事务
*/
public void rollbackTransaction() {
try {
conn.rollback();
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
} /**
* 执行数据库的增删改方法.
* @param sqlstr:增删改Sql语句
* @return:影响行数
*/
public int execUpdate(String sqlstr) {
if (conn == null) {
System.out.println("数据联接对象为空.不能进行更新操作...");
return -1;
}
try {
Statement ps = conn.createStatement();
System.out.println("执行更新SQL:"+sqlstr);
return ps.executeUpdate(sqlstr);
} catch (SQLException ex) {
System.out.println("数据库执行更新失败,详细信息为:" + ex.getMessage());
return -1;
}
} /**
* 执行数据库的增删改方法.
* 如进行Insert操作.sql语句为:insert into testTable(字段1,字段2,字段3)values(?,?,?);
* 调用的时候需传入代替?号的List参数列表.如:List list=new
* ArrayList();list.add(字段1的值);list.add(字段2的值);list.add(字段3的值);
* @param sqlstr:增删改的Sql语句
* @param list:Sql参数
* @return:影响行数
*/
public int execUpdate(String sqlstr, List list) {
if (conn == null) {
System.out.println("数据联接对象为空.不能进行更新操作...");
return -1;
}
try {
PreparedStatement ps = conn.prepareStatement(sqlstr);
for (int i = 0; i < list.size(); i++) {
ps.setObject(i + 1, list.get(i));
}
System.out.println("执行更新SQL:"+sqlstr);
return ps.executeUpdate();
} catch (SQLException ex) {
System.out.println("数据库执行更新失败,详细信息为:" + ex.getMessage());
return -1;
}
} /**
* 执行数据库的查询方法.外面操作完结果集,请记住调用close方法
* @param sqlstr:查询Sql语句
* @return:ResultSet结果集
*/
public ResultSet execQuery(String sqlstr) {
if (conn == null) {
System.out.println("数据联接对象为空.不能进行查询操作...");
return null;
}
try {
Statement ps = conn.createStatement();
System.out.println("执行查询SQL:"+sqlstr);
return ps.executeQuery(sqlstr);
} catch (SQLException ex) {
System.out.println("数据库执行查询失败,详细信息为:" + ex.getMessage());
return null;
}
} /**
* 执行数据库的查询方法.外面操作完结果集,请记住调用close方法
* list:SQL参数. 调用的时候需传入代替?号的List参数列表.如:List list=new
* ArrayList();list.add(字段1的值);list.add(字段2的值);list.add(字段3的值);
* @param sqlstr:查询sql语句
* @param list:sql参数
* @return:ResultSet结果集
*/
public ResultSet execQuery(String sqlstr, List list) {
if (conn == null) {
System.out.println("数据联接对象为空.不能进行查询操作...");
return null;
}
try {
PreparedStatement ps = conn.prepareStatement(sqlstr);
for (int i = 0; i < list.size(); i++) {
ps.setObject(i + 1, list.get(i));
}
System.out.println("执行查询SQL:"+sqlstr);
ResultSet rs=ps.executeQuery();
return rs;
} catch (SQLException ex) {
System.out.println("数据库执行查询失败,详细信息为:" + ex.getMessage());
return null;
}
} /**
* 关闭数据库联接方法
*/
public void close() {
try {
if (conn != null) {
conn.close();
System.out.println("关闭连接");
}
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
/**
* 得到联接对象
*
* @return Connection
*/
public Connection getConnection() {
return conn;
} public enum ConnectionType {
JDBC_ODBC_BRIDGE, JDBC_MICROSOFT
}
}
匿名用户
2013-08-11
展开全部
单个的增删改会不?假定你会 那些很简单。代码都是可以重用的。 不写了。你也可以参考上面的人写法 (没看代码 不知道可以不 自己去测测 加深你自己认识代码能力)你建个方法 方法里传几个参数。。 用于增删改的判断。。一个表不可以能出现 增删改一起的情况 如果是多条记录选择一起 修改完数据后 保存 你设定一个参数用于标定执行什么语句。 参数strResult如if(strResult.eaquls(Add)) { // 增加操作}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丿iMayday
2013-08-12
知道答主
回答量:30
采纳率:0%
帮助的人:6.7万
展开全部
网络上不好说
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-11
展开全部
我有c#的,你要是c#的代码吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
382580322
2013-08-10 · TA获得超过757个赞
知道小有建树答主
回答量:639
采纳率:0%
帮助的人:337万
展开全部
什么数据库 什么语言。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式