J2EE的13个规范之(二) JDBC 及其使用「建议收藏」

J2EE的13个规范之(二) JDBC 及其使用

大家好,又见面了,我是全栈君。

        我想大家都知道ODBC是什么?ODBC(OpenDatabaseConnectivity。开放数据库互连)是微软公司开放服务结构(WOSA,WindowsOpenServicesArchitecture)中有关数据库的一个组成部分。它建立了一组规范,并提供了一组对数据库訪问的标准API(应用程序编程接口)。

       JDBC(Java Data Base Connectivity,java数据库连接)是一种用于运行SQL语句的Java API,能够为多种关系数据库提供统一訪问。它由一组用Java语言编写的类和接口组成。事实上他们都是一样的,为连接数据库提供一组API!

      理解JDBC

      提供了统一方式訪问数据库的API,提供独立于平台的数据库訪问,对专有的数据库问题的是透明的。

JDBC驱动程序

       我们来看一个图,JAVA引用程序是通过驱动呢来和数据库进行连接的。连接不同的数据库载入不同的驱动!

      J2EE的13个规范之(二) JDBC 及其使用「建议收藏」

       比如我们连接sql server 数据库,那么我们就要载入sql server 驱动。首先要从网上下载对应的驱动包sqljdbc_4.0.2206.100_chs.tar假设你的数据库是sql server 2008以后版本号的, 那么就能够用这个一个(sqljdbc4.jar)就能够了,当然假设是曾经的,你能够查一下我没研究过,但我想说(你真执着!)。

       看一下用Eclipse 连接sql server 数据库的使用方法!有图有真相。

       首先打开Eclipse后,随便的简历一个java 项目。然后随便的建一个包。包下边在创建一个类!

      J2EE的13个规范之(二) JDBC 及其使用「建议收藏」

       然后右键单击项目名,选择Build Path  然后在选择Configure Build Path….

  J2EE的13个规范之(二) JDBC 及其使用「建议收藏」

       然后选择上边的Libraries,单击Add External JARs…. 然后找到你从网上下载好的sqljdbc4.jar文件, 一定要下载好正确的文件。否则你会非常懊悔!

所以建议你从这里下载(标准的sqljdbc4.jar)。

J2EE的13个规范之(二) JDBC 及其使用「建议收藏」

       确定好有sqljdbc.jar文件以后(一定要看好后缀名),就能够单击OK了。

J2EE的13个规范之(二) JDBC 及其使用「建议收藏」

       然后如图所看到的,当写代码的时候的驱动的路径就放在java.sql.Driver文件里,到时候为了防止写错,能够来这里粘贴!

而他真实使用的驱动类就放在com.microsoft.sqlserver.jdbc的包中,想看一下直接进去找,里边类有非常多,详细什么作用直接去网上查就能够了。

      J2EE的13个规范之(二) JDBC 及其使用「建议收藏」

       然后就能够进行编码了,编码前首先要引入几个文件,java.sql.Connection; java.sql.DriverManager; java.sql.PreparedStatement; java.sql.ResultSet;在程序中就能够直接使用这几个类了!

<span style="font-size:18px;">package com.tgb;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;public class jdbcConn {	public static void main(String[] args) throws Exception {		// TODO Auto-generated method stub		jdbcConn.test();	}	public static void test() throws Exception{		Connection conn = null;		PreparedStatement ps=null;		ResultSet rs= null;				try {			//定义驱动的路径,该路径在services下的java.sql.Driver中。			String driverPath="com.microsoft.sqlserver.jdbc.SQLServerDriver";			//载入驱动			Class.forName(driverPath);			//是从当前JVM的载入器(可能多个)中选取适合的数据库驱动并获得连接			conn=DriverManager .getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=DB_ChargeSystem","sa","123456");			//SQL语句			String sql = "select * from T_UserInfo";			//向已经连接的数据库中发送sql语句,该sql语句在PreparedStatement对象中已经惊醒了编译!			ps = conn.prepareStatement(sql);			//返回sql语句的运行结果。			rs = ps.executeQuery(); 			//对结果进行操作,现将他打印出来, 在实际中进行更复杂的操作!			while (rs.next()) {				System.out.println(rs.getString(1));			}		} catch (Exception e) {			// TODO: handle exception			e.printStackTrace();		}finally{			//关闭全部打开的连接,			try {				rs.close();			} catch (Exception e2) {				// TODO: handle exception				e2.printStackTrace();			}finally{				try {					ps.close();				} catch (Exception e3) {					// TODO: handle exception					e3.printStackTrace();				}finally{					conn.close();				}			}		}	}}</span>

       这个仅仅是一个简单的实例。在实际的应用中我们还要好好的对这种方法进行进一步的封装。然后就能够代码简化非常多。

       上边的实例为sql server数据库的连接。事实上其它数据库的连接跟这个本质上是一样的。虽然JDBCJAVA语言层面实现了统一,但不同数据库仍旧有很多差异。

为了更好地实现跨数据库操作,于是诞生了Hibernate目,Hibernate是对JDBC的再封装,实现了对数据库操作更宽泛的统一和更好的可移植性。

       期待进一步的学习!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116093.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月26日 上午9:00
下一篇 2022年1月26日 上午9:00


相关推荐

  • 穿越时空 一台家庭NAS能为你带来什么

    穿越时空 一台家庭NAS能为你带来什么

    2022年3月6日
    41
  • ssm框架过时了吗_spring实战

    ssm框架过时了吗_spring实战SpringSpring是一个开源的免费的框架Spring是一个轻量级的,非入侵式的框架控制反转(IOC),面向切面编程(AOP)支持事务的处理,对框架整合的支持IOC理论UserDaoUserDaoImpUserSeviceUserServiceImp在之前,用户的需求可能会影响原来的代码。使用一个set。public void setUserDao(UserDao userDao){ this.userDao = userDao;}之前是主动创建对象,控制

    2022年8月8日
    11
  • 守护线程和非守护线程_java守护线程的作用

    守护线程和非守护线程_java守护线程的作用Java中有两类线程:UserThread(用户线程)、DaemonThread(守护线程)用户线程即运行在前台的线程,而守护线程是运行在后台的线程。守护线程作用是为其他前台线程的运行提供便利服务,而且仅在普通、非守护线程仍然运行时才需要,比如垃圾回收线程就是一个守护线程。当VM检测仅剩一个守护线程,而用户线程都已经退出运行时,VM就会退出,因为没有如果没有了被守护这,也就没有继续运行程…

    2022年10月15日
    5
  • LeetCode报错:AddressSanitizer:DEADLYSIGNAL详细分析与解决

    LeetCode报错:AddressSanitizer:DEADLYSIGNAL详细分析与解决LeetCode报错:AddressSanitizer:DEADLYSIGNAL详细分析与解决问题描述问题分析实例分析更多总结见:C刷题:LeetCode刷题踩坑常见BUG总结问题描述报错:AddressSanitizer:DEADLYSIGNAL,详细如下===42====ERROR:AddressSanitizer:SEGVonunknownaddressxx.ThesignaliscausedbyaREADmemoryaccess.问题分析一般可能主要有

    2025年8月5日
    5
  • 浏览器offsetWidth、clientWidth、scrollWith等总结

    浏览器offsetWidth、clientWidth、scrollWith等总结  对象尺寸会涉及width和height,我们以width为例,height则是一样的道理。  1、clientWidth:对象可见的宽度,不包括滚动条等边线,会随窗口的显示大小改变。  clientWidth = 元素width+padding  2、scrollWidth:实际内容的宽,不包括边线宽度,会随着对象中内容的多少改变。  无滚动时等于c…

    2022年7月22日
    15
  • LabelImg安装

    LabelImg安装LabelImg安装

    2022年6月17日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号