当前位置: 首页 > news >正文

中学加强校园网站内容建设做网站的人跑了网站可以恢复吗

中学加强校园网站内容建设,做网站的人跑了网站可以恢复吗,wordpress 企业主题 免费,2000个免费货源网站JDBC详细介绍一、JDBC详细介绍二、jdbc面试总结2.1 JDBC操作数据库的步骤 #xff1f;2.2 JDBC中的Statement 和PreparedStatement#xff0c;CallableStatement的区别#xff1f;2.3 JDBC中大数据量的分页解决方法?2.4 说说数据库连接池工作原理和实现方案#xff1f;2.4… JDBC详细介绍一、JDBC详细介绍二、jdbc面试总结2.1 JDBC操作数据库的步骤 2.2 JDBC中的Statement 和PreparedStatementCallableStatement的区别2.3 JDBC中大数据量的分页解决方法?2.4 说说数据库连接池工作原理和实现方案2.4.1 工作原理2.4.2 实现方案2.5 Java中如何进行事务的处理?2.6 修改JDBC代码质量2.7 写出一段JDBC连接本机MySQL数据库的代码2.8 JDBC是如何实现Java程序和JDBC驱动的松耦合的2.9 executeexecuteQueryexecuteUpdate的区别是什么2.10 PreparedStatement的缺点是什么怎么解决这个问题2.11 JDBC的脏读是什么哪种数据库隔离级别能防止脏读2.12. 什么是幻读哪种隔离级别可以防止幻读2.13 JDBC的DriverManager是用来做什么的2.14 ResultSet2.14.1 JDBC的ResultSet是什么2.14.2 有哪些不同的ResultSet2.15 JDBC的DataSource是什么有什么好处?2.16 常见的JDBC异常有哪些2.17 JDBC的RowSet是什么有哪些不同的RowSet2.18 JDBC中存在哪些不同类型的锁2.19 什么是JDBC的最佳实践一、JDBC详细介绍 参考链接: JDBC详细全解示例超多 二、jdbc面试总结 2.1 JDBC操作数据库的步骤 注册数据库驱动。建立数据库连接。创建一个Statement。执行SQL语句。处理结果集。关闭数据库连接 代码如下 Connection connection null;Statement statement null;ResultSet resultSet null;try {/*加载驱动有两种方式* 1会导致驱动会注册两次过度依赖于mysql的api脱离的mysql的开发包程序则无法编译* 2驱动只会加载一次不需要依赖具体的驱动灵活性高*我们一般都是使用第二种方式* *///1.//DriverManager.registerDriver(new com.mysql.jdbc.Driver());//2.Class.forName(com.mysql.jdbc.Driver);//获取与数据库连接的对象-Connetcionconnection DriverManager.getConnection(jdbc:mysql://localhost:3306/zhongfucheng, root, root);//获取执行sql语句的statement对象statement connection.createStatement();//执行sql语句,拿到结果集resultSet statement.executeQuery(SELECT * FROM users);//遍历结果集得到数据while (resultSet.next()) {System.out.println(resultSet.getString(1));System.out.println(resultSet.getString(2));}} catch (SQLException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();} finally {/*关闭资源后调用的先关闭* 关闭之前要判断对象是否存在* */if (resultSet ! null) {try {resultSet.close();} catch (SQLException e) {e.printStackTrace();}}if (statement ! null) {try {statement.close();} catch (SQLException e) {e.printStackTrace();}}if (connection ! null) {try {connection.close();} catch (SQLException e) {e.printStackTrace();}}}2.2 JDBC中的Statement 和PreparedStatementCallableStatement的区别 区别 PreparedStatement是预编译的SQL语句效率高于Statement。PreparedStatement支持操作符相对于Statement更加灵活。PreparedStatement可以防止SQL注入安全性高于Statement。CallableStatement适用于执行存储过程。 2.3 JDBC中大数据量的分页解决方法? 最好的办法是利用sql语句进行分页这样每次查询出的结果集中就只包含某页的数据内容。 mysql语法 oracle语法 2.4 说说数据库连接池工作原理和实现方案 2.4.1 工作原理 JAVA EE服务器启动时会建立一定数量的池连接并一直维持不少于此数目的池连接。客户端程序需要连接时池驱动程序会返回一个未使用的池连接并将其标记为忙。如果当前没有空闲连接池驱动程序就新建一定数量的连接新建连接的数量由配置参数决定。当使用的池连接调用完成后池驱动程序将此连接标记为空闲其他调用就可以使用这个连接。 2.4.2 实现方案 连接池使用集合来进行装载返回的Connection是原始Connection的代理代理Connection的close方法当调用close方法时不是真正关连接而是把它代理的Connection对象放回到连接池中等待下一次重复利用。 代码如下 2.5 Java中如何进行事务的处理? 事务是作为单个逻辑工作单元执行的一系列操作。一个逻辑工作单元必须有四个属性 (ACID) 称为原子性、一致性、隔离性和持久性只有这样才能成为一个事务。 Connection类中提供了4个事务处理方法: setAutoCommit(Boolean autoCommit):设置是否自动提交事务,默认为自动提交,即为true,通过设置false禁止自动提交事务;commit():提交事务;rollback():回滚事务.savepoint:保存点 注意savepoint不会结束当前事务普通提交和回滚都会结束当前事务的 2.6 修改JDBC代码质量 下述程序是一段简单的基于JDBC的数据库访问代码,实现了以下功能:从数据库中查询product表中的所有记录,然后打印输出到控制台.该代码质量较低,如没有正确处理异常,连接字符串以”魔数”的形式直接存在于代码中等,请用你的思路重新编写程序,完成相同的功能,提高代码质量。 修改前代码 修改的点 1、url、password等信息不应该直接使用字符串“写死”可以使用常量代替 2、catch中应该回滚事务抛出RuntimeException也是回滚事务的一种方法 3、关闭资源 修改后代码 2.7 写出一段JDBC连接本机MySQL数据库的代码 2.8 JDBC是如何实现Java程序和JDBC驱动的松耦合的 通过制定接口数据库厂商来实现。我们只要通过接口调用即可。随便看一个简单的JDBC示例你会发现所有操作都是通过JDBC接口完成的而驱动只有在通过Class.forName反射机制来加载的时候才会出现。 2.9 executeexecuteQueryexecuteUpdate的区别是什么 execute:  Statement的execute(String query)方法用来执行任意的SQL查询如果查询的结果是一个ResultSet这个方法就返回true。如果结果不是ResultSet比如insert或者update查询它就会返回false。我们可以通过它的getResultSet方法来获取ResultSet或者通过getUpdateCount()方法来获取更新的记录条数。executeQuery:  Statement的executeQuery(String query)接口用来执行select查询并且返回ResultSet。即使查询不到记录返回的ResultSet也不会为null。我们通常使用executeQuery来执行查询语句这样的话如果传进来的是insert或者update语句的话它会抛出错误信息为 “executeQuery method can not be used for update”的java.util.SQLException。executeUpdate:  Statement的executeUpdate(String query)方法用来执行insert或者update/deleteDML语句或者 什么也不返回DDL语句。返回值是int类型如果是DML语句的话它就是更新的条数如果是DDL的话就返回0。 注意只有当你不确定是什么语句的时候才应该使用execute()方法否则应该使用executeQuery或者executeUpdate方法。 2.10 PreparedStatement的缺点是什么怎么解决这个问题 PreparedStatement的一个缺点是我们不能直接用它来执行in条件语句需要执行IN条件语句的话下面有一些解决方案 分别进行单条查询——这样做性能很差不推荐。使用存储过程——这取决于数据库的实现不是所有数据库都支持。动态生成PreparedStatement——这是个好办法但是不能享受PreparedStatement的缓存带来的好处了。在PreparedStatement查询中使用NULL值——如果你知道输入变量的最大个数的话这是个不错的办法扩展一下还可以支持无限参数。 2.11 JDBC的脏读是什么哪种数据库隔离级别能防止脏读 脏读一个事务读取到另外一个事务未提交的数据 例子A向B转账A执行了转账语句但A还没有提交事务B读取数据发现自己账户钱变多了B跟A说我已经收到钱了。A回滚事务【rollback】等B再查看账户的钱时发现钱并没有多。 下面的三种个隔离级别都可以防止 已读提交 Read committed【TRANSACTION_READ_COMMITTED】可重复读 Repeatable read【TRANSACTION_REPEATABLE_READ】串行化Serializable【TRANSACTION_SERIALIZABLE】 2.12. 什么是幻读哪种隔离级别可以防止幻读 幻读是指在一个事务内读取到了别的事务插入的数据导致前后读取不一致。 只有串行化TRANSACTION_SERIALIZABLE隔离级别才能防止产生幻读。 2.13 JDBC的DriverManager是用来做什么的 JDBC的DriverManager是一个工厂类我们通过它来创建数据库连接。当JDBC的Driver类被加载进来时它会自己注册到DriverManager类里面。然后我们会把数据库配置信息传成DriverManager.getConnection()方法DriverManager会使用注册到它里面的驱动来获取数据库连接并返回给调用的程序。 2.14 ResultSet 2.14.1 JDBC的ResultSet是什么 在查询数据库后会返回一个ResultSet它就像是查询结果集的一张数据表。  ResultSet对象维护了一个游标指向当前的数据行。开始的时候这个游标指向的是第一行。如果调用了ResultSet的next()方法游标会下移一行如果没有更多的数据了next()方法会返回false。可以在for循环中用它来遍历数据集。  默认的ResultSet是不能更新的游标也只能往下移。也就是说你只能从第一行到最后一行遍历一遍。不过也可以创建可以回滚或者可更新的ResultSet 当生成ResultSet的Statement对象要关闭或者重新执行或是获取下一个ResultSet的时候ResultSet对象也会自动关闭。  可以通过ResultSet的getter方法传入列名或者从1开始的序号来获取列数据。 2.14.2 有哪些不同的ResultSet 根据创建Statement时输入参数的不同会对应不同类型的ResultSet。如果你看下Connection的方法你会发现createStatement和prepareStatement方法重载了以支持不同的ResultSet和并发类型。  一共有三种ResultSet对象。 ResultSet.TYPE_FORWARD_ONLY这是默认的类型它的游标只能往下移。ResultSet.TYPE_SCROLL_INSENSITIVE游标可以上下移动一旦它创建后数据库里的数据再发生修改对它来说是透明的。ResultSet.TYPE_SCROLL_SENSITIVE游标可以上下移动如果生成后数据库还发生了修改操作它是能够感知到的。 ResultSet有两种并发类型。 ResultSet.CONCUR_READ_ONLY:ResultSet是只读的这是默认类型。ResultSet.CONCUR_UPDATABLE:我们可以使用ResultSet的更新方法来更新里面的数据。 2.15 JDBC的DataSource是什么有什么好处? DataSource即数据源它是定义在javax.sql中的一个接口跟DriverManager相比它的功能要更强大。我们可以用它来创建数据库连接当然驱动的实现类会实际去完成这个工作。除了能创建连接外它还提供了如下的特性 缓存PreparedStatement以便更快的执行可以设置连接超时时间提供日志记录的功能ResultSet大小的最大阈值设置通过JNDI的支持可以为servlet容器提供连接池的功能 2.16 常见的JDBC异常有哪些 有以下这些 java.sql.SQLException这是JDBC异常的基类。java.sql.BatchUpdateException当批处理操作执行失败的时候可能会抛出这个异常。这取决于具体的JDBC驱动的实现它也可能直接抛出基类异常java.sql.SQLException。java.sql.SQLWarningSQL操作出现的警告信息。java.sql.DataTruncation字段值由于某些非正常原因被截断了不是因为超过对应字段类型的长度限制。 问题1 SQLWarning是什么在程序中如何获取SQLWarning   SQLWarning是SQLException的子类通过Connection, Statement, Result的getWarnings方法都可以获取到它。 SQLWarning不会中断查询语句的执行只是用来提示用户存在相关的警告信息。 如果java.sql.SQLException: No suitable driver found该怎么办   如果你的SQL URL串格式不正确的话就会抛出这样的异常。不管是使用DriverManager还是JNDI数据源来创建连接都有可能抛出这种异常。它的异常栈看起来会像下面这样。 解决这类问题的方法就是检查下日志文件像上面的这个日志中URL串是’jdbc:mysql://localhost:3306/UserDB只要把它改成jdbc:mysql://localhost:3306/UserDB就好了。 2.17 JDBC的RowSet是什么有哪些不同的RowSet RowSet用于存储查询的数据结果和ResultSet相比它更具灵活性。RowSet继承自ResultSet因此ResultSet能干的它们也能而ResultSet做不到的它们还是可以。RowSet接口定义在javax.sql包里。  RowSet提供的额外的特性有 提供了Java Bean的功能可以通过settter和getter方法来设置和获取属性。RowSet使用了JavaBean的事件驱动模型它可以给注册的组件发送事件通知比如游标的移动行的增删改以及RowSet内容的修改等。RowSet对象默认是可滚动可更新的因此如果数据库系统不支持ResultSet实现类似的功能可以使用RowSet来实现。  RowSet分为两大类 连接型RowSet这类对象与数据库进行连接和ResultSet很类似。JDBC接口只提供了一种连接型RowSetjavax.sql.rowset.JdbcRowSet它的标准实现是com.sun.rowset.JdbcRowSetImpl。离线型RowSet这类对象不需要和数据库进行连接因此它们更轻量级更容易序列化。它们适用于在网络间传递数据。  有四种不同的离线型RowSet的实现。CachedRowSet可以通过他们获取连接执行查询并读取ResultSet的数据到RowSet里。我们可以在离线时对数据进行维护和更新然后重新连接到数据库里并回写改动的数据。WebRowSet继承自CachedRowSet他可以读写XML文档。JoinRowSet继承自WebRowSet它不用连接数据库就可以执行SQL的join操作。FilteredRowSet继承自WebRowSe我们可以用它来设置过滤规则这样只有选中的数据才可见。 2.18 JDBC中存在哪些不同类型的锁 从广义上讲有两种锁机制来防止多个用户同时操作引起的数据损坏。 乐观锁只有当更新数据的时候才会锁定记录。悲观锁从查询到更新和提交整个过程都会对数据记录进行加锁。 2.19 什么是JDBC的最佳实践 数据库资源是非常昂贵的用完了应该尽快关闭它。Connection, Statement, ResultSet等JDBC对象都有close方法调用它就好了。养成在代码中显式关闭掉ResultSetStatementConnection的习惯如果你用的是连接池的话连接用完后会放回池里但是没有关闭的ResultSet和Statement就会造成资源泄漏了。在finally块中关闭资源保证即便出了异常也能正常关闭。大量类似的查询应当使用批处理完成。尽量使用PreparedStatement而不是Statement以避免SQL注入同时还能通过预编译和缓存机制提升执行的效率。如果你要将大量数据读入到ResultSet中应该合理的设置fetchSize以便提升性能。你用的数据库可能没有支持所有的隔离级别用之前先仔细确认下。数据库隔离级别越高性能越差确保你的数据库连接设置的隔离级别是最优的。如果在WEB程序中创建数据库连接最好通过JNDI使用JDBC的数据源这样可以对连接进行重用。如果你需要长时间对ResultSet进行操作的话尽量使用离线的RowSet。
http://www.w-s-a.com/news/357780/

相关文章:

  • 涉县移动网站建设公司常州做网站的公司有哪些
  • 网站批量创建程序中国十大人力资源公司
  • 菏泽网站建设 梧桐树二次开发创造作用
  • 维护网站费用长沙广告设计公司排名
  • 模仿别人网站侵权wordpress 修改链接失效
  • wordpress文章设置受密码保护南宁网站优化公司哪家好
  • 网站开发工程师介绍设计类的网站
  • 嘉兴seo网站推广中山建网站多少钱
  • 高端汽车网站建设帮别人做网站自己为什么会被抓
  • 网站开发实验室建设方案wordpress 主题丢失
  • 珠宝网站建设平台分析报告郑州最新发布
  • 世界杯最新排名泉州seo网站关键词优
  • 广州公司网站提供如何推广新品
  • 网站建设如何描述沈阳网站建设推广平台
  • 用dw制作个介绍家乡网站学生个人简历
  • 建设银行企业网站访问不了wordpress搬到谷歌服务器
  • 网站建设与网站优化销售别墅庭院园林景观设计公司
  • 沈阳红方城网站建设专业的微网站哪家好
  • 医院网站asp东营信息发布平台
  • 网站全站建设开题报告范文南京本地网站
  • 网站漏洞扫描工具wampserver集成环境搭建了一个织梦cms网站
  • 如何在局域网上做网站宁波设计公司排行榜
  • 自己的电脑做网站服务器吗百度搜索风云榜总榜
  • 做化妆品的一些网站企业网站建设与营运计划书
  • 重庆速代网络科技seo整站优化服务教程
  • 成都比较好的装修设计公司seo3的空间构型
  • 开发商建设审批网站成都创意设计公司
  • 百度快照比网站上线时间早wordpress新建阅读量字段
  • 国家工程建设标准化协会网站网站开发工具有
  • 上海网站建设集中公关公司组织架构图