Mybatis学习(一)原生态的JDBC编程总结
2015-06-10 15:54
411 查看
在学习任何一种ORM的时候,免不了的都要让我们想起原生态的JDBC是如何写的,因为只有这样你才能感觉出来为什么要有这个ORM新的产品,诸如学习hibernate、等等。jbdc顾名思义的意思是java的数据库连接(java database connectity)。它是一种执行sql的java的API,可以为多种数据库提供统一的访问基准。
一般jdbc的执行流程是这样的:1、加载数据库的驱动;2、建立数据库连接;3、向数据库发起sql要求;4、获取返回数据库处理的结果;5、处理返回的结果;6、释放资源。
按照这个思路咱们手写一个小程序:查询用户名为helloWord的用户,并且输出这个用户的信息(id、用户名)。
代码如下:
写完这段代码进行一下总结,用jdbc方式编码的缺点:
1、数据库的连接,使用时就创建不使用时就释放,一开一闭,对数据库进行频繁的操作,导致资源严重的被浪费。
2、sql语句被写到了java的代码中,如果数据库的表改变了,那么就得重新的编写java类。
3、sql语句设置参数比较麻烦,必须的确定参数的位置,要不然会出错。
4、获取结果时存在大量的手工操作,如果一张表里有10几个字段的话,手工就得写10几条rs.get语句,造成大量的重复工作。
就是因为这样,现在许多ORM产品诞生了,学习他们就是因为他们带来很多简便的操作,下面就开始mybatis学习之旅了。
一般jdbc的执行流程是这样的:1、加载数据库的驱动;2、建立数据库连接;3、向数据库发起sql要求;4、获取返回数据库处理的结果;5、处理返回的结果;6、释放资源。
按照这个思路咱们手写一个小程序:查询用户名为helloWord的用户,并且输出这个用户的信息(id、用户名)。
代码如下:
package cn.bj.mybatis.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * <p>单独的jdbc程序</p> * @author woniu * @date 2015-06-10 * @version 1.0 */ public class DataBase { public static void main(String[] args) { Connection connection = null;//连接 PreparedStatement ps = null;//预编译的statement ResultSet rs = null;//结果集 try { //1、注册驱动 Class.forName("com.mysql.jdbc.Driver"); //2、通过驱动管理类获取数据库的连接 connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8","root","root"); //3、建立sql语句,向数据库发起要求;获取预处理的statement String sql = "select * from user where username = ? "; ps = connection.prepareStatement(sql); ps.setString(1, "helloworld"); //4、获取结果集 rs = ps.executeQuery(); //5、处理结果集 while(rs.next()){ System.out.println(rs.getString("id") + " " + rs.getString("username")); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally{ //6、释放资源 if(rs !=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if(ps != null){ try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } if(connection != null){ try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
写完这段代码进行一下总结,用jdbc方式编码的缺点:
1、数据库的连接,使用时就创建不使用时就释放,一开一闭,对数据库进行频繁的操作,导致资源严重的被浪费。
2、sql语句被写到了java的代码中,如果数据库的表改变了,那么就得重新的编写java类。
3、sql语句设置参数比较麻烦,必须的确定参数的位置,要不然会出错。
4、获取结果时存在大量的手工操作,如果一张表里有10几个字段的话,手工就得写10几条rs.get语句,造成大量的重复工作。
就是因为这样,现在许多ORM产品诞生了,学习他们就是因为他们带来很多简便的操作,下面就开始mybatis学习之旅了。
相关文章推荐
- 阿里云服务器验证码不能显示解决办法java.lang.Error: Probable fatal error:No fonts found
- php 排除周末与节假日程序实例代码
- PHP PSR-3 日志接口规范 (中文版)
- springmvc结构中 没有异常,但无法调到controler层
- Go语言实战 - 创业进行时之创业伊始
- PHP中正则函数
- C# POST与Get数据
- c# 托管堆,堆栈【图文非常详细】
- Java 中访问数据库的步骤?Statement 和 PreparedStatement 之间的区别?
- 关于python中文输出乱码的处理
- java基础之三Collection和Map的区别
- java 的latin1 跟 mysql 的latin1 之间的差距
- 关于代码中区分debug与release、32位与64位、xp还是win7编译的宏定义
- php phpqrcode 生成二维码
- java数据库 三种事务处理?
- C语言-编译
- php使用Jpgraph绘制饼状图的方法
- Python 中的 classmethod 和 staticmethod 有什么具体用途?
- Java连接HBASE数据库
- php的闭包(Closure)也就是匿名函数。