欢迎来到天天文库
浏览记录
ID:37859024
大小:172.00 KB
页数:28页
时间:2019-06-01
《JAVA面试 中级篇》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、JDBC阐述JDBC操作数据库的步骤答:下面的代码以连接本机的Oracle数据库为例,演示JDBC操作数据库的步骤。1)加载驱动Class.forName("oracle.jdbc.driver.OracleDriver");2)创建连接。Connectioncon=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger");3)创建语句PreparedStatementps=con.prepareStatement("sele
2、ct*fromempwheresalbetween?and?");ps.setInt(1,1000);ps.setInt(2,3000);4)执行语句ResultSetrs=ps.executeQuery();5)处理结果while(rs.next()){System.out.println(rs.getInt("empno")+"-"+rs.getString("ename"));}6)关闭资源finally{if(con!=null){try{con.close();}catch(SQLExceptione){e.printStac
3、kTrace();}}}提示:关闭外部资源的顺序应该和打开的顺序相反,也就是说先关闭ResultSet、再关闭Statement、在关闭Connection。上面的代码只关闭了Connection(连接),虽然通常情况下在关闭连接时,连接上创建的语句和打开的游标也会关闭,但不能保证总是如此,因此应该按照刚才说的顺序分别关闭。此外,第一步加载驱动在JDBC4.0中是可以省略的(自动从类路径中加载驱动),但是我们建议保留。1.下列属于关系型数据库的是()A.OracleB.MySqlC.IMSD.MongoDB答案:AB解答:IMS(Inf
4、ormationManagementSystem)数据库是IBM公司开发的两种数据库类型之一;一种是关系数据库,典型代表产品:DB2;另一种则是层次数据库,代表产品:IMS层次数据库。非关系型数据库有MongoDB、memcachedb、Redis等。在进行数据库编程时,连接池有什么作用?答:由于创建连接和释放连接都有很大的开销(尤其是数据库服务器不在本地时,每次建立连接都需要进行TCP的三次握手,再加上网络延迟,造成的开销是不可忽视的),为了提升系统访问数据库的性能,可以事先创建若干连接置于连接池中,需要时直接从连接池获取,使用结束时
5、归还连接池而不必关闭连接,从而避免频繁创建和释放连接所造成的开销,这是典型的用空间换取时间的策略(浪费了空间存储连接,但节省了创建和释放连接的时间)。池化技术在Java开发中是很常见的,在使用线程时创建线程池的道理与此相同。基于Java的开源数据库连接池主要有:C3P0、Proxool、DBCP、BoneCP、Druid等。【补充】在计算机系统中时间和空间是不可调和的矛盾,理解这一点对设计满足性能要求的算法是至关重要的。大型网站性能优化的一个关键就是使用缓存,而缓存跟上面讲的连接池道理非常类似,也是使用空间换时间的策略。可以将热点数据置
6、于缓存中,当用户查询这些数据时可以直接从缓存中得到,这无论如何也快过去数据库中查询。当然,缓存的置换策略等也会对系统性能产生重要影响,对于这个问题的讨论已经超出了这里要阐述的范围。什么是DAO模式?答:DAO(DataAccessObject)顾名思义是一个为数据库或其他持久化机制提供了抽象接口的对象,在不暴露数据库实现细节的前提下提供了各种数据操作。为了建立一个健壮的JavaEE应用,应该将所有对数据源的访问操作进行抽象化后封装在一个公共API中。用程序设计语言来说,就是建立一个接口,接口中定义了此应用程序中将会用到的所有事务方法。在
7、这个应用程序中,当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口,在逻辑上该类对应一个特定的数据存储。DAO模式实际上包含了两个模式,一是DataAccessor(数据访问器),二是DataObject(数据对象),前者要解决如何访问数据的问题,而后者要解决的是如何用对象封装数据。什么是ORM?答:对象关系映射(Object-RelationalMapping,简称ORM)是一种为了解决程序的面向对象模型与数据库的关系模型互不匹配问题的技术;简单的说,ORM是通过使用描述对象和数据库之间映射的元数据(可以用
8、XML或者是注解),将Java程序中的对象自动持久化到关系数据库中或者将关系数据库表中的行转换成Java对象,其本质上就是将数据从一种形式转换到另外一种形式。JDBC中如何进行事务处理?答:Connecti
此文档下载收益归作者所有