JavaEE JDBC 补充注意点】的更多相关文章

JDBC补充注意点 @author ixenos 1.一个Statement对象可以用于多个不相关的命令和查询,但是一个Statement对象最多只能有一个打开的结果集,如果需要同时执行多个查询同时分析查询结果,那么必须创建多个Statement对象 a)     然而!如果真的需要并发查询分析结果,我们更应该从数据库层面的组合查询去解决,而不是java层面的算法,因为前者只需要分析一个结果 2.使用完ResultSet.Statement.Connection对象后,应立即调用close方法,…
了解JNDI @author ixenos Web与企业应用中的连接管理 1. 数据库连接方式: (1)使用配置文件 (2)使用JNDI 2. 在Web或企业环境中部署 JDBC应用时,数据库连接管理与JNDI(Java Name Directory Interface)是集成在一起的 (1)遍布企业的数据源的属性可以存储在一个目录中,这样我们可以集中管理用户名.密码.数据库名 和 JDBC URL (2)使用JNDI创建数据库连接: Context jndiContext = new Init…
1.载入数据库驱动(jar文件) //须要下载一个数据库的jar包,并导入对应的JDBC项目中,创建路径! Class.forName("com.mysql.jdbc.Driver"); 2.获得数据库连接 DriverManager.getConnection("jdbc:mysql://Database_IP:3306/DATABASE","DATAROOT","PASSWORD"); //返回Connection----…
JDBC:Java Data Base Connectivity java数据库连接 1.组成JDBC的两个包:主要是接口 java.sql javax.sql 2.相应JDBC的数据库实现 在tomcat的目录下面添加mysql-connector-java-5.0.8-bin.jar这个数据库驱动包 package com.tsh.web; import java.io.IOException; import java.sql.Connection; import java.sql.Driv…
了解数据库连接池 @author ixenos 数据库连接是有限的资源,如果用户需要离开应用一段时间,那么他占用的连接就不应该保持开放状态: 另一方面,每次查询都获取连接并在随后关闭它的代价也很高. 解决上述问题的方法就是使用数据库连接池(类似线程池的概念). 这意味着数据库连接在物理上并未被关闭,而是保留在一个队列中被反复重用. 连接池是种服务,JDBC规范为实现者提供了用以实现连接池服务的手段, 但JDK本身没有实现,数据库供应商的JDBC驱动程序一般也没有, 相反,Web容器和应用服务器的…
JDBC 事务 @author ixenos 事务 1.概念:我们将一组语句构建成一个事务(trans action),当所有语句顺利执行之后,事务可以被提交(commit):否则,如果其中某个语句遇到错误,那么事务将被回滚,就好像没有任何语句被执行一样 2.需求背景:将多个语句组合成事务的主要原因是为了确保数据库完整性(database integrity) 3.默认情况下,数据库连接处于自动提交模式(autocommit mode),每个SQL语句一旦被执行便被提交给数据库,一旦命令被提交就…
RowSet行集 @author ixenos 应用背景 1.基于结果集的缺点:在与用户的整个交互过程中,必须始终与数据库保持连接 后果:当用户长时间离开时,数据库连接长时间被占用,而这属于稀缺资源: 解决:使用行集RowSet,RowSet继承了ResultSet接口,却无需始终保持与数据库的连接~ 2.结果集不便于移动,因为数据结构复杂,且依赖于连接 解决:使用行集RowSet,RowSet适用于将查询结果移动到复杂应用的其他层,或者其他设备当中 3.因为RowSet继承了ResultSet…
JDBC 读写LOB大对象 @author ixenos LOB 除了数字.字符串和日期之外,许多数据库还可以存储大对象,例如图片或其他数据, 在SQL中,二进制(字节型)大对象称为BLOB,字符型大对象称为CLOB 读取LOB流程 i.     执行SELECT语句 ii.    ResultSet调用getBlob或getClob方法获取Blob或Clob类型的对象 iii.   Blob调用getBytes或getInputStream方法获取Image等对象 iv.   代码如下: Pr…
PreparedStatement @author ixenos PreparedStatement工作原理 注意:虽然mysql不支持PreparedStatement优化,但依然有预编译的实现! PreparedStatement相较Statement的优点 1.预编译缓存的支持,能提高执行效率 2.防范SQL注入 statement有sql注入的风险 比如 SELECT * FROM boss WHERE user='root' OR 1=1 --' AND password='f3f.3…
JDBC怎么加载驱动 @author ixenos 分析 1.JDBC是一套连接数据库的接口(放在java.util.sql.Driver类中),不同的数据库依此接口各自实现Java连接到数据库的操作,这些具体的实现就叫做驱动: 2.当只连接一个数据库时,我们可以new 驱动对象来使用,但是当多数据库连接时,要多次创建Driver示例,多次创连接Connection,有些繁琐,这时,sun提供了一个驱动的管理器DriverManager,注册驱动就可以调用: 3.但是每次还是要创Driver实例…