码迷,mamicode.com
首页 > 数据库 > 详细

JDBC常见问答

时间:2017-10-28 17:40:26      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:jdbc

  1. 请问JDBC是不是纯网络连接数据库?

    答:是网络连接,桥接已经不再使用了


  2. Class.forName() 是不是专门用来驱动加载的?

    答:专门用来加载类的


  3. 事务控制是在哪个接口上控制?

    答:Connection接口


  4. 请问事务的隔离性在那个接口中设置?

    答:Connection接口


  5. 数据库连接池是为了优化什么操作?

    答:数据库连接对象上的优化


  6. DBCP与C3P0之间优缺点简单说一下?

    答:C3P0没那么占用资源,DBCP要耗资源一些,并且C3P0比DBCP速度快


  7. 请问防止sql语句注入使用那个接口执行SQL语句可以防止注入问题?

    答:PreparedStatement接口


  8. 请问存储过程调用可以返回记录集吗?

    答:可以


  9. 我有一个存储过程  getName() 里面两个参数一个传 int 一个带出参数,请问我在java里如何写调用的字符串

    答:{call getName(?,?)}


  10. 如果我想获得查询出的表结构,请问在那个对象中可以获得表结构对象?

    答:ResultSet对象


  11. ResultSet中可以倒着拿数据吗?

    答:可以,使用ResultSet对象先调用afterLast方法,在得值前调用previous方法


  12. 在一个程序中我们可以连接Mysql的同时可以连接Oracle或者DB2吗?

    答:可以,管好各自数据库的连接对象即可


  13. 请问我如何设置手动提交事务模式?那个方法?什么参数

    答:使用Connection对象调用AutoCommit方法传递false参数


  14. 请问我设置了手动提交事务,最后并没有调用commit或者是rollback 会报错吗?

    答:不会,默认会连接到localhost


  15. 你使用了一个方法但是以前有这个效果,现在又没有这个效果了? 为什么会有这样的事情出现呢?

    答:Java只声明的接口,实现方法是由各家数据库公司编写的,如果实现方法修改了,那么效果自然会发生改变


  16. 我们修改了数据状态,但是对方事务看不到,是因为我没有事务提交,如何能让别的事物看见没有提交的修改数据呢?

    答:将数据库的事务隔离级别设置为:读未提交(Read Uncommitted)


  17. 如果使用查询加派他锁?

    答:在SELECT语句末尾加上for update


  18. 什么锁可以在一个记录中加多次?

    答:共享锁


  19. 修改共享锁锁定的记录是不需要等对方松开锁吗?

    答:不是,需要对方松开锁才可以修改


  20. 排他锁锁定数据是否能被共享锁锁定

    答:不能,排他锁是很严格的,不能被其他锁锁定


  21. 在Mysql中锁表和锁行,那个耗资源一些?

    答:锁行耗资源一些


  22. SQL批处理可以在那些接口执行 ?

    答:Statement和PreparedStatement接口


  23. 执行SQL我们什么时候选择Statement或者PreparedStatement?

    答:当sql语句是开发者写的、确保不会出现sql注入的情况下可以使用Statement,如果是用户通过文本输入的、可能会发生sql注入问题的使用PreparedStatement


  24. 请问我们可以使用Statement执行DDL语句吗?

    答:可以,使用execute方法可以执行任何SQL语句


  25. Mysql数据库连接字符串如果没有填写数据库名字,会不会报错

    答:不会报错,之后的sql语句写成这种格式即可select * from jdbc.student


  26. 数据库连接池,使用什么方法可以把Connection放回池内

    答:Close方法


  27. 连接池有没有关闭方法?关闭连接池

    答:有,同样的是Close方法


  28. sql的连接查询可以连接多张表吗?

    答:可以


  29. 连接查询条件使用 on  后面我还可以使用 where吗?

    答:可以


  30. 一张表里的数据量很大,你有什么办法可以优化一下?

    答:表分区,分多张表存储,设置主键、索引,使用MyISAM引擎


  31. 如何解决数据量大查询方式?
    答:使用LIMIT分页查询


  32. 为什么说查询最好是按主键查?

    答:因为主键有优化查询,并且主键是唯一的


  33. 关联关系,是让数据库维护关系,还是我们程序自己维护,那种方式好?

    答:数据库维护好,自己维护的话需要开启很多事务,比较麻烦


  34. 我们有比较大的文件,要不要也存放到数据库?为什么适不适合存放大文件?

    答:可以存放,但是数据库不适合存放文件,主要有以下几点原因:                   

             1.对数据库的读/写的速度永远都赶不上文件系统处理的速度
             2.数据库备份变的巨大,越来越耗时间
             3.对文件的访问需要穿越你的应用层和数据库层


35.我们操作使用一个Connection对象有什么不好吗?

       答: 一个Connection对象根本忙不过来,而且现在的网站并发量比较大会导致数据混乱,异步问题,现在是多线程的时代


36.连接数据库,驱动加载到底是为了什么?

        答: 注册驱动,加载静态成员


37.有什么办法可以知道你INSERT后的自动编号ID是多少?

        答:使用SELECT LAST_INSERT_ID() 语句


38.MySQL提高查询效率我们使用那个引擎

        答:MyISAM引擎,但是这个引擎不支持事务


39.Connection连接了数据库,使用的是什么协议?

        答:TCP/IP协议


40.DBunit是用什么方法来进行数据库测试?

        答:通过使用XML文件备份和恢复数据库数据的方式,避免破坏数据

本文出自 “zero” 博客,请务必保留此出处http://zero01.blog.51cto.com/12831981/1977028

JDBC常见问答

标签:jdbc

原文地址:http://zero01.blog.51cto.com/12831981/1977028

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!