您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 Code iProcess 课程 认证 咨询 工具 火云堂 讲座吧   成长之路  
会员   
 
   
 
  
每天15篇文章
不仅获得谋生技能
更可以追随信仰
 
     
   
 订阅
  捐助
Java操作数据库之jdbc【原生方式】
 
464 次浏览     评价:  
 2018-5-22 
 
编辑推荐:
本文来自于csdn,本文主要陈述了Java对数据库的操作技术中的其中一种——JDBC,详细讲述了运用jdbc操作数据库的步骤。

引言:Java对数据库的操作有很多种技术。例如说jdbc,dbutil +C3p0,hibernate,jdbcTemplate等等【这五个都会总结】,到后面的话使用一些高级的框架去操作数据库,比如hibernate。但是底层操作数据库是重要的,高级框架也是也底层为基础搭建的,所以这里还是总结一下对一些常用数据库的操作技术,有兴趣的看一下。或者只挑你感兴趣的那一部分看

一:JDBC【什么是JDBC?为什么使用JDBC?怎么使用JDBC?】what +why + how

【what】SUN公司为使Java程序灵活的访问各种不同的关系型数据库提供的规则。【why】也就是说,不需要java应用程序去直接操作数据库,而是通过sum公司提供的方法统一去操作数据库,那么我们就不需要针对不同的数据库写不同的代码。只需要在配置文件里面配置一下即可,写代码更加方便。使Java程序灵活移植【how】下面讲【下面的案例全部以mysql为例】

二:开发步骤

1)导入mysql包

这一步是必须的,无论使用什么技术操作数据库,都需要导入mysql包

2) JDBC的六个固定步骤

1,注册数据库驱动[利用反射]

2,取得数据库连接对象Connection

3,创建SQL对象

4,执行SQL命令,并返回结果集

5,处理结果集

6,依次关闭结果集

//1,注册数据库驱动有两种方式
第一种是:直接注册数据库驱动
DriverManager.registerDriver(new Driver());
第二种是:利用反射机制间接加载数据库驱劝,推荐用第二种
Class.forName("com.mysql.jdbc.Driver");
//2. 取得数据库连接对象Connection
//取得与MySQL数据库连接的桥梁,参数分别是:连接数据库 用户名 密码Connection conn = DriverManager.getConnection("
jdbc:mysql:///zz2017","root","xiaozheng");
//前两步骤需要记住以下。下面的
//4:执行sql语句
insert/update/delete----PreparedStatement .executeUpdate(sql):
返回值表示影响记录的行数
select------------------PreparedStatement .exeucteQuery():
返回值表示符合条件的记录

【注意】创建sql对象的时候,有人会用Statement,我案例中使用的是 PreparedStatement。使用这个的好处是变量可以用占位符的方式去表示,而且它可以防止sql注入,所以我就采用这种方式,不用Statement

//案例源码
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://127.0.0.1:3306/mydb2";
String user = "root";
String password = "root";
String sql = "insert into user(name,gender,salary) values(?,?,?)";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
//注册数据库驱动
Class.forName(driver);
//取得数据库连接
conn = DriverManager.getConnection(url, user, password);
//进行预编译,这里进行参数设置
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,"xiaozheng");
pstmt.setString(2,"男");
pstmt.setFloat(3,8000);
//进行编译
rs = pstmt.executeQuery();
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String gender = rs.getString("gender");
float salary = rs.getFloat("salary");
System.out.println(id + ":" + name + ":" + gender + ":"+ salary);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if(rs!=null){//轻量级,创建和销毁rs所需要的时间和资源较小
try {
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if(stmt!=null){//轻量级,创建和销毁rs所需要的时间和资源较小
try {
stmt.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if(conn!=null){//重量级,创建和销毁rs所需要的时间和资源较小
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}

提醒一点,上述代码中发现有很多相同的地方,太长了。那么可以把相同部分提取成一个工具类,下面都是采用工具类的方式演示。工具类会打包给大家,有需要的可以下载看看

三:CURL操作

插入操作【图有点不清,建议可拖到新窗口打开图片就可以看清】

读取操作

删除

修改操作

   
464 次浏览  评价: 差  订阅 捐助
相关文章

深度解析:清理烂代码
如何编写出拥抱变化的代码
重构-使代码更简洁优美
团队项目开发"编码规范"系列文章
相关文档

重构-改善既有代码的设计
软件重构v2
代码整洁之道
高质量编程规范
相关课程

基于HTML5客户端、Web端的应用开发
HTML 5+CSS 开发
嵌入式C高质量编程
C++高级编程
每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号