您的位置:首页 > 数据库

通过jdbc实现对数据库中数据的增删查改操作

2016-01-17 11:23 806 查看

原始的东西该理解还是要理解

需要一个连接数据库的jar包(这里用的是MySQL):

http://download.csdn.net/detail/zhengyikuangge/9406895

直接上代码:

public class ValueDao {
public  String DRIVER = "com.mysql.jdbc.Driver";
//mysql驱动
public  String url = "jdbc:mysql://localhost/mysql";
/*
数据库路径,localhost表示本地ip,如果使用的是默认端口号可以省略书写
端口号。如果要加端口号,则上述url改成:"jdbc:mysql://localhost:
3306/mysql"。 3306即为mysql默认的端口号
*/
public  String name = "root";
//数据库的用户名
public  String psd = "123456";
//数据库的密码
public  Connection conn;
//声明数据库连接的变量
public  PreparedStatement ptmt;
//声明预处理命令行的变量
public  Statement stmt;
//Statement没有明确的定义
public  ResultSet rs;
//结果集变量

private void getConnection() throws Exception {
Class.forName(DRIVER);
//加载驱动
conn = DriverManager.getConnection(url, name, psd);
//获取连接
}

public String search(String sql) throws Exception {
String s = null;
getConnection();
stmt = conn.createStatement();
//创建Statement对象
rs = stmt.executeQuery(sql);
//执行sql语句并获得返回结果集
while (rs.next()) {
/*
rs.next()表示遍历,getString方法参数
中可以放列名或第几列,例如第一列就用数字1表示。
*/
s = rs.getString(1) + rs.getString(2);
}
closeAll();
//关闭所有连接
return s;
}

public int update(String sql, String[] values) throws Exception {
// TODO Auto-generated method stub
int rows = 0;
getConnection();
ptmt = conn.prepareStatement(sql);
//获得预处理命令行对象
for (int i = 0; i < values.length; i++) {
/*
对预处理命令行对象进行进一步的加工,sql语句中可以用"?"来
代替未知量,然后用把数组中的元素替代sql语句中的"?"。例如
update("delete from student where stu_no=?",new
String[]{"2"}),到最后合成的结果是:delect from student
where stu_no=2。
*/
ptmt.setString(i + 1, values[i]);
//问号的位置从1开始
}
rows = ptmt.executeUpdate();
//执行已经处理好的sql语句
closeAll();
//关闭所有连接
return rows;
}

private void closeAll() throws Exception {
//这个方法就不用解释了。。
if (stmt != null) {
stmt.close();
}
if (ptmt != null) {
ptmt.close();
}
if (conn != null) {
conn.close();
}

}
}


关于PreparedStatement和Statement的区别:

PreparedStatement是Statement的子类,青出于蓝,前者具有后者的功能且比后者更加实用与安全。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: