仓酷云
标题:
了解下JAVA的利用JDBC举行数据会见
[打印本页]
作者:
小妖女
时间:
2015-1-18 11:13
标题:
了解下JAVA的利用JDBC举行数据会见
先说优点,首先和C,C++这些语言比起来,java很简单,去掉指针的java,非常好理解,自动垃圾回收机制也很好,自从JDK1.5推出以后,性能上又有了很大提高。
Spring供应的JDBC笼统框架由core,datasource,object和support四个分歧的包构成。
就和它名字的表示一样,org.springframework.jdbc.core包里界说了供应中心功效的类。个中有各类SQLExceptionTranslator和DataFieldMaxValueIncrementer的完成和一个用于JdbcTemplate的DAO基本类。
org.springframework.jdbc.datasource包里有一个用以简化数据源会见的工具类,和各类数据源的复杂完成,以被用来在J2EE容器以外不经修正地测试JDBC代码。这个工具类供应了从JNDI取得毗连和大概用到的封闭毗连的静态办法。它撑持绑定线程的毗连,好比被用于DataSourceTransactionManager。
接着,org.springframework.jdbc.object包里是把干系数据库的查询,更新和存储历程封装为线程平安并可重用对象的类。这中体例摹拟了JDO,只管查询前往的对象天经地义的“离开”了数据库毗连。这个JDBC的高层笼统依附于org.springframework.jdbc.core包中所完成的底层笼统。
最初在org.springframework.jdbc.support包中你能够找到SQLException的转换功效和一些工具类。
在JDBC挪用中被抛出的非常会被转换成在界说org.springframework.dao包中的非常。这意味着利用SpringJDBC笼统层的代码不必要完成JDBC大概RDBMS特定的毛病处置。一切的转换后的非常都是unchecked,它同意你捕获那些你能够恢复的非常,并将其他的非常传送给挪用者。
JdbcTemplate
这是在JDBC中心包中最主要的类。它简化了JDBC的利用,由于它处置了资本的创建和开释。它匡助你制止一些罕见的毛病,好比忘了总要封闭毗连。它运转中心的JDBC事情流,如Statement的创建和实行,而只必要使用程序代码供应SQL和提取了局。这个类实行SQL查询,更新大概挪用存储历程,摹拟了局集的迭代和提取前往参数值。它还捕获JDBC的非常并将它们转换成org.springframework.dao包中界说的通用的,可以供应更多信息的非常系统。
利用这个类的代码只必要依据明白界说的一组左券来完成回调接口。PreparedStatementCreator回调接口创立一个由该类供应的毗连所创建的PreparedStatement,并供应SQL和任何须要的参数。CallableStatementCreateor完成一样的处置,只是它创立了CallableStatement。RowCallbackHandler接口从数据集的每行中提取值。
这个类能够间接经由过程数据源的援用实例化,然后在服务中利用,也能够在ApplicationContext中发生并作为bean的援用给服务利用。注重:数据源应该老是作为一个bean在ApplicationContext中设置,第一种情形它被间接传送给服务,第二种情形给JdbcTemplate。由于这个类把回调接口和SQLExceptionTranslator接口作为参数暗示,以是没有需要为它界说子类。这个类实行的一切SQL城市被记进日记。
数据源
为了从数据库取得数据,我们必要失掉数据库的毗连。Spring接纳的办法是经由过程一个数据源。数据源是JDBC标准的一部分,它能够被以为是一个通用的毗连工场。它同意容器大概框架将在使用程序代码中埋没毗连池和事件的办理操纵。开辟者将不必要晓得毗连数据库的任何细节,那是设置数据源的办理员的义务。固然你极可能在开辟大概测试的时分必要兼任两种脚色,可是你其实不必要晓得实践产物中的数据源是怎样设置的。
利用Spring的JDBC层,你能够从JNDI失掉一个数据源,也能够经由过程利用Spring刊行版供应的完成本人设置它。后者关于离开Web容器的单位测试是非常便当的。我们将在本节中利用DriverManagerDataSource完成,固然今后还会提到其他的一些的完成。DriverManagerDataSource和传统的体例一样猎取JDBC毗连。为了让DriverManager能够装载驱动类,你必需指定JDBC驱动完全的类名。然后你必需供应相对各类JDBC驱动的分歧的URL。你必需参考你所用的驱动的文档,以取得必要利用的准确参数。最初,你还必需供应用来毗连数据库的用户名和暗码上面这个例子申明怎样设置DriverManagerDataSource:
DriverManagerDataSourcedataSource=newDriverManagerDataSource();
dataSource.setDriverClassName("org.hsqldb.jdbcDriver");
dataSource.setUrl("jdbc:hsqldb:hsql://localhost:");
dataSource.setUsername("sa");
dataSource.setPassword("");
10.2.3.SQLExceptionTranslator
SQLExceptionTranslator是一个必要完成的接口,它被用来处置SQLException和我们的数据会见非常org.springframework.dao.DataAccessException之间的转换。
完成能够是通用的(好比利用JDBC的SQLState值),也能够为了更高的准确度特别化(好比利用Oracle的ErrorCode)。
SQLErrorCodeSQLExceptionTranslator是SQLExceptionTranslator的完成,它被默许利用。比供给商指定的SQLState更加准确。ErrorCode的转换是基于被保留在SQLErrorCodes型的JavaBean中的值。这个类是由SQLErrorCodesFactory创建并添补的,就像它的名字申明的,SQLErrorCodesFactory是一个基于一个名为"sql-error-codes.xml"的设置文件的内容创建SQLErrorCodes的工场。这个文件带有供给商的码一同公布,而且是基于DatabaseMetaData信息中的DatabaseProductName,合适以后数据库的码会被利用。
<p>
java主要分三块,j2se:java的基础核心语言。j2me:java的微型模块,专门针对内存小,没有持续电源等小型设备。j2ee:java的企业模块,专门针对企业数据库服务器的连接维护。
作者:
兰色精灵
时间:
2015-1-20 17:28
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
作者:
若相依
时间:
2015-1-25 12:30
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
作者:
山那边是海
时间:
2015-1-27 08:49
Java是一种计算机编程语言,拥有跨平台、面向对java
作者:
小女巫
时间:
2015-2-3 12:52
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
作者:
爱飞
时间:
2015-2-7 18:21
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
作者:
老尸
时间:
2015-2-11 04:25
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
作者:
简单生活
时间:
2015-2-16 05:04
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
作者:
只想知道
时间:
2015-2-17 08:38
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者:
蒙在股里
时间:
2015-2-21 06:24
Java是一种计算机编程语言,拥有跨平台、面向对java
作者:
飘灵儿
时间:
2015-3-1 07:44
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
作者:
活着的死人
时间:
2015-3-10 12:55
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
作者:
海妖
时间:
2015-3-11 07:17
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者:
不帅
时间:
2015-3-11 08:22
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者:
小魔女
时间:
2015-3-17 23:57
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
作者:
飘飘悠悠
时间:
2015-3-25 08:02
是一种将安全性(Security)列为第一优先考虑的语言
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2