Java操作数据库之jdbc【原生方式】
2017-04-17 10:51
239 查看
资料下载:跟后面的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,依次关闭结果集
【注意】创建sql对象的时候,有人会用Statement,我案例中使用的是 PreparedStatement。使用这个的好处是变量可以用占位符的方式去表示,而且它可以防止sql注入,所以我就采用这种方式,不用Statement
提醒一点,上述代码中发现有很多相同的地方,太长了。那么可以把相同部分提取成一个工具类,下面都是采用工具类的方式演示。工具类会打包给大家,有需要的可以下载看看
三:CURL操作
插入操作【图有点不清,建议可拖到新窗口打开图片就可以看清】
读取操作
删除
修改操作
引言: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操作
插入操作【图有点不清,建议可拖到新窗口打开图片就可以看清】
读取操作
删除
修改操作
相关文章推荐
- Java操作数据库的三种方式(原生jdbc,JdbcTemplate,数据层框架)
- java-jdbc访问数据库,原生操作数据库
- java 演示使用jdbc-odbc桥连接的方式操作数据库 向数据库中添加数据
- JAVA jdbc方式直接操作数据库
- 各种数据库的jdbc驱动下载及连接方式-转自javaeye.com author:benlsoft
- java application应用程序 使用JDBC和proxool两种方式连接数据库 的测试程序代码
- JAVA中操作数据库方式与设计模式的应用
- JAVA中操作数据库方式与设计模式的应用
- java-JDBC-ResultSet详解(java数据库操作)
- 编写操作数据库的JAVA程序时需要的连接MySQL数据库的JDBC连接包mysql-connector-java-5.1.10.zip怎么安装
- JAVA中操作数据库方式与设计模式的应用(文章地址整理)
- JAVA操作数据库方式与设计模式应用
- JAVA操作数据库方式与设计模式应用
- JAVA操作数据库方式与设计模式应用
- java中如何通过JDBC的方式连接sqlserver2005多实例数据库?
- JAVA中数据库操作的各种方式与设计模式的应用
- JAVA中数据库操作的各种方式与设计模式的应用
- JAVA操作数据库方式与设计模式应用
- JAVA操作数据库方式与设计模式应用-Java基础-Java-编程开发
- 高性能数据库的访问,java程序员心中永远的痛(JDBC访问数据库的4中方式及数据库连接池中间件的设计和实现)(1)