资料下载:跟后面的dbUtils一起打包,有需要的下载咯。下载的网址:http://download.csdn.net/detail/xiaozhegaa/9816808

引言: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操作
插入操作【图有点不清,建议可拖到新窗口打开图片就可以看清】

读取操作

删除

修改操作

更多相关文章

  1. Android复习练习十二(自定义ContentProvider实现其他应用操作本
  2. 显示操作栏和向上导航 - Android
  3. 实现基于注解(Annotation)的数据库框架(一)反射的基本了解
  4. 无法从Android中的Asset文件夹复制数据库
  5. Android之SQLite数据库篇
  6. Android中的内存储、外存储概念、文件操作与PC端的有些不同
  7. 如何为sqlite操作构建更有效的设计
  8. 如何设计数据库模型来记录客户的历史活动?
  9. 如何使用adb命令查看android中的数据库

随机推荐

  1. Laravel数据库获取值的常用方法
  2. PHP过滤数组中的0、null、false和''等空
  3. php使用QueryList轻松采集JavaScript动态
  4. php JSON数据格式化(美化)的方法
  5. PHP替换回车换行符的三种方法
  6. PHP中explode和implode的使用
  7. 非常实用的PHP常用函数汇总-加密解密、字
  8. PHP运算符优先级的一个例外
  9. 自学php有哪些好的方法
  10. php三个函数、两种选择防止sql注入