【Java基础】——JDBC
2015-12-20 19:07
330 查看
JDBC——Java Data Base Connectivity,Java数据库连接,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组类和接口组成。它跟应用程序和数据库的关系,如下图:
![](https://img-blog.csdn.net/20151220171632493?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
JDBC为应用程序和数据库驱动之间提供了一组接口(规范),数据库驱动是实现数据库操作的类,根据JDBC规范来实现。
操作数据库的步骤
1、注册驱动
2、建立连接
3、创建执行SQL语句的对象
4、执行SQL语句
5、处理执行结果
6、释放相关资源
具体说明:
URL格式:jdbc:子协议:子名称//主机名:端口/数据库名
连接Oracle数据库:url = "jdbc:oracle:thin:@localhost:1521:orcl"
& PrepareStatement
Statement st = conn.createStatement();
PrepareStatement pst = conn.prepareStatement(sql);
可以看出,在创建PrepareStatement对象的同时,需要指明需要执行的sql语句,因为它会对sql语句进行预处理;而Statement则在执行sql动作时,才指明sql语句。
st.executeQuery(sql);
pst.executeQuery();
非查询(增、删、改)
st.executeUpdate(sql);
pst.executeUpdate();
ResultSet rs = st.executeQuery(sql);
ResultSet rs = pst.executeQuery();
非查询:同上
PS:Connection是非常稀有的资源,用完必须马上释放。它的使用原则是尽量晚的创建,尽量早的释放,以减少占用资源的时间。
下边是一个JDBC操作数据库的Demo
在实际的开发使用中,我们需要将上边的代码进行封装优化。将注册驱动、建立连接、释放资源的额操作封装到一个工具类中,然后采用单例模式为该类加锁(synchronize)来限制多线程冲突的问题。
【结语】
了解了JDBC操作数据库的步骤,对比一下.NET上的ODBC,内容都是大同小异的。不同的语言之间,内容都是相通的。这样,我们在学习的时候,需要编织自己的知识网。这样,才能够有利于我们后期的学习!
JDBC为应用程序和数据库驱动之间提供了一组接口(规范),数据库驱动是实现数据库操作的类,根据JDBC规范来实现。
操作数据库的步骤
1、注册驱动
2、建立连接
3、创建执行SQL语句的对象
4、执行SQL语句
5、处理执行结果
6、释放相关资源
具体说明:
1、注册驱动
网上说有3中方式,直接注册驱动、键值对方式、Class.forName方式,推荐大家使用Class.forName方式。这样方式类似于反射。“com.mysql.jdbc.Driver”,Class.forName函数的作用是根据类的名字将类装载到虚拟机中(并未实例化),这种方式 也不会对具体的驱动类产生依赖,而且使用方便。2、建立连接
Connection conn = DriverManager.getConnection(url,username,password)URL格式:jdbc:子协议:子名称//主机名:端口/数据库名
连接Oracle数据库:url = "jdbc:oracle:thin:@localhost:1521:orcl"
3、创建执行SQL语句的对象
在JDBC中,有两个对象可以使用:Statement & PrepareStatement。关于这两者的区别,会在下一篇文章中,具体阐述。详情请点击:Statement& PrepareStatement
Statement st = conn.createStatement();
PrepareStatement pst = conn.prepareStatement(sql);
可以看出,在创建PrepareStatement对象的同时,需要指明需要执行的sql语句,因为它会对sql语句进行预处理;而Statement则在执行sql动作时,才指明sql语句。
4、执行SQL(CURD)语句
查询:st.executeQuery(sql);
pst.executeQuery();
非查询(增、删、改)
st.executeUpdate(sql);
pst.executeUpdate();
5、处理执行结果
查询:返回值采用ResultSet接收ResultSet rs = st.executeQuery(sql);
ResultSet rs = pst.executeQuery();
非查询:同上
6、释放相关资源
依次释放ResultSet、Statement(或PrepareStatement)、Connection对象。释放的顺序与创建的顺序正好相反。PS:Connection是非常稀有的资源,用完必须马上释放。它的使用原则是尽量晚的创建,尽量早的释放,以减少占用资源的时间。
下边是一个JDBC操作数据库的Demo
<span style="font-family:Microsoft YaHei;font-size:14px;"> /** * @Title: JDBCtest * @Description: JDBC操作数据库Demo,以mysql为例 * @param @throws ClassNotFoundException * @param @throws SQLException 参数 * @return void 返回类型 * @throws */ public static void JDBCtest() throws ClassNotFoundException, SQLException { //1.方法1:注册驱动:依赖于驱动jar包的存在,否则无法通过编译 DriverManager.registerDriver(new com.oracle.jdbc.Driver()); //方法2:键值对方式 System.setProperties("jdbc.drivers","com.oracle.jdbc.Driver"); //方法3:Class.forName方式 Class.forName("oracle.jdbc.driver.OracleDriver"); //2.建立连接 String url = "jdbc:oracle:thin:@localhost:1521:orcl"; String username = "system"; String password ="kirnY123"; Connection conn = DriverManager.getConnection(url,username,password); //3.创建语句执行对象 //需要执行的sql语句 String sql = "select user_name,password from t_user where user_id=?"; //使用Statement对象 Statement st=conn.createStatement(); //使用PrepareStatement对象 PreparedStatement pst = conn.createStatement(sql); //4.执行语句 //使用Statement对象 st.executeQuery("sql"); //使用PrepareStatement对象 pst.executeQuery(); //5.处理结果 //使用Statement对象 ResultSet rs=st.executeQuery("sql"); //使用PrepareStatement对象 ResultSet rs=pst.executeQuery(); //6.释放资源,资源rs、st、conn的释放顺序与创建顺序相反 rs.close(); st.close(); conn.close(); } </span>
在实际的开发使用中,我们需要将上边的代码进行封装优化。将注册驱动、建立连接、释放资源的额操作封装到一个工具类中,然后采用单例模式为该类加锁(synchronize)来限制多线程冲突的问题。
【结语】
了解了JDBC操作数据库的步骤,对比一下.NET上的ODBC,内容都是大同小异的。不同的语言之间,内容都是相通的。这样,我们在学习的时候,需要编织自己的知识网。这样,才能够有利于我们后期的学习!
相关文章推荐
- jdbc中的Statement和PreparedStatement接口对象
- Android之获取手机上的图片和视频缩略图thumbnails
- 数据库链接字符串查询网站
- DB2实例管理
- DB2实例管理
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- 创建一个空的IBM DB2 ECO数据库的方法
- Access 2000 数据库 80 万记录通用快速分页类
- 开通一个数据库失败的原因的和解决办法
- 一个简单的asp数据库操作类
- CentOS下DB2数据库安装过程详解
- EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页
- sql2008 还原数据库解决方案
- Oracle 数据库自动存储管理-安装配置
- Oracle 数据库 临时数据的处理方法
- 数据库分页查询语句数据库查询
- 最近比较流行的数据库挂马
- Oracle 手动创建数据库步骤详解