jdbc基础
1.什么是数据源?
答:数据源定义的是连接到实际数据库的一条路径而已,数据源中并无真正的数据,它仅仅记录的是你连接到哪个数据库,以及如何连接的,如odbc数据源。也就是说数据源仅仅是数据库的连接名称,一个数据库可以有多个数据源连接。
在Java语言中,DataSource对象就是一个代表数据源实体的对象。一个数据源就是一个用来存储数据的工具,它可以是复杂的大型企业级数据库,也可以是简单得只有行和列的文件。数据源可以位于在服务器端,也可以位于客服端。
2.什么是数据库连接池?
答:数据库连接是负责分配、管理和释放数据库连接。使用数据库连接池是因为数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。如weblogic、tomcat、WebSphere容器都实现了数据库连接池,但是数据库连接池是可以独立出来自己编码实现的。
数据库连接池在系统启动时初始化了一定量maxIdle=idlenum的数据库连接,即没有他的使用中的链接被释放的情况下,连接池中保存的最大空闲链接数。数据库连接请求如果没有超过idle的值则直接去连接池中获取;如果超过了maxIdle的值则新建一个数据库连接;但如果数据库连接池中的连接总数超过了maxActive=activenum则 (如下处理);
1 直接抛错
2 让想要借出连接的线程等待一段时间,如果等不到,再抛错
3 每隔一段检查一次pool,直到有可用连接,否则一直等下去
4 永远可以拿到(视情况需要maxActive不设置或0或负)
但当没有可以使用的数据库链接的时候,连接池将要等待一个链接被返回的最长时间(毫秒)maxWait=waitnum,超过这个时间就要抛出异常。
3.什么是jndi?
答:jndi全称是java naming and directory interface。简单点就是你按命名规则给一个东西命名然后你就可以通过该名字在特定环境下直接查找到该东西了。
4.数据源与数据库连接池关系?
答:我们通过第三方工具来使用数据源来实现对数据库数据操作。一个数据库连接池可以给它创建多个数据源,如一个人有别名;如果单纯使用jdbc连接数据库是web容器你要什么就去连什么。这样做没人看不耗内存,量大了你就死机。可以这样理解,数据源表示一个与数据库的连接(传统)或者表示很多与数据库的连接(使用数据库连接池)。数据源是用于访问连接池或多池的JNDI对象,多池的主要目的是提高可用性和在一组连接池间实现负载均衡。
5.数据源与jndi关系?
答:数据源是在JDBC 2.0中引入的一个概念。在JDBC 2.0扩展包中定义了javax.sql.DataSource接口来描述这个概念。如果用户希望建立一个数据库连接,通过查询在JNDI服务中的数据源,可以从数据源中获取相应的数据库连接。这样用户就只需要提供一个逻辑名称(Logic Name),而不是数据库登录的具体细节。即DataSource采用Java的JNDI技术,来获得DataSource对象的引用。当然各种web容器把DataSource作为一种可以配置的JNDI资源来处理如tomcat。生成DataSource对象的工厂为org.apache.commons.dbcp.BasicDataSourceFactory。
6.jdbc基础
答:java database connectivity standard 是一套规范的面向应用程序的接口,通过它可以访问各类关系数据库。各个数据库会实现该接口作为驱动如jtds.jar,当然可以自己写实现。
jdbc是低级api,提供访问数据库的接口,是构建高级api的基础,利用纯java编写可以在任何操作系统任何java环境下工作。JDBC API 中定义了一些Java类分别用来表示与数据库的连接(connections), SQL语句(SQL statements), 结果集(result sets)以及其它的数据库对象, 使得Java程序能方便地与数据库交互并处理所得的结果。
使用JDBC, 所有Java程序(包括Java applications , applets和servlet)都能通过SQL语句或存储在数据库中的过程(stored procedures)来存取数据库。要通过JDBC来存取某一特定的数据库,必须有相应的JDBC driver,它往往是由生产数据库的厂家提供,是连接JDBC API与具体数据库之间的桥梁。JDBC driver 是用于特定数据库的一套实施了JDBC接口的类集。
简单的说,jdbc可以做三件事:与数据库建立连接,发送sql语句,处理结果。jdbc可以理解为odbc的纯java语言和面向对象的实现。
7.数据库访问方法?
答:在ASP中可以通过三种方式访问数据库:
1、IDC(Internet Database Connector)方式;
2、ADO(ActiveX Data Objects)方式;
3、RDS(Remote Data Service)方式。
在jsp中访问数据库常用:
1、JDBC-ODBC桥接器;
2、特定数据库的jdbc驱动直接连接数据库;
3、经过池化维护一定量的连接数目,用jndi去访问数据源对应池获取连接;
**************************************************************************************数据库是一个数据的工厂,可以理解成产品的生产厂家,
如果你从厂家租用东西,厂家就马上找人开工,启动设备,等生产好之后,发货给你。当然整个生产过程需要比较长的时间。
数据源,是一个产品代理仓库,代理那里原来就有一些生产好的产品了,所以你从代理获取产品,可以马上就得到。当然代理的仓库也是有大小限制的。
**************************************************************************************数据源是一个泛指,ds与db不同