04 2017 档案
摘要:1.Web组件之间的跳转方式: 方式1: 请求转发(forward). 方式2: URL重定向(redirect). 方式3: 请求包含(include). (1.)请求转发: 从Servlet1,请求转发到Servlet2. Servlet1完成一部分的功能,再跳转到Servlet2,继续完成剩下
阅读全文
摘要:Servlet的线程不安全问题: 造成的根本原因是:Servlet是单例的,Servlet中的非static的成员变量只有一份,多个客户端好比是多个线程,都访问的是同一个空间. 解决方案: 1:让当前Servlet实现javax.servlet.SingleThreadModel接口. 包装只有一个
阅读全文
摘要:Servlet的请求流程:如下图: 1:浏览器先发送请求:http://localhost:80/day3/hello. 2:DNS解析域名(忽略) 3:Tomcat解析请求:/day3/hello. 上下文路径:/day3 资源的名称:/hello 4:解析Tomcat根/conf/server.xml文件,获取其中所有的元素,并找到path属性为...
阅读全文
摘要:创建一个javaProject 项目之后,在src同等级的目录下创建webapp目录,在该目录下 依次创建lib WEB-INF classes 三种文件目录以及重要的一点 web.xml 文件。 如下图: 并在配置文件bulidpath 中配置classes文件,如下图: 如下图:
阅读全文
摘要:找到Tomcat根/conf/server.xml文件. 配置多个<Host> 修改Windows系统中的C:\WINDOWS\system32\drivers\etc\hosts. 配置二级域名,会使用到. 请求消息 1、包含三大部分 1.1请求行:位于请求消息的第一行 格式:请求方式 资源路径
阅读全文
摘要:在Tomcat服务器中部署项目,有三种方式: 1.直接把项目的web根路径,拷贝到Tomcat根/webapps目录中.该方式,可行,是MyEclipse工具的部署方式. 缺点: 1):不支持热部署.(代码变动之后,需要重新部署,重新部署的成本很大). 2):把所有的项目都部署在该路径,启动越来越慢
阅读全文
摘要:初步封装模版:设置传参 定义Handler 接口: 在对应的实现类中 ,定义内部类实现 Handler 对应的操作,比如:Student 对象的操作。 测试: private IStudentDao dao = new StudentImpl(); 补上Dao: DQL操作模板:query方法,还不
阅读全文
摘要:c3p0连接池,是Hibernate推荐使用的连接池,该连接池已有接近10年没有更新了. c3p0性能很高,其实是在测试环境高,真实应用中很低. Java框架数据库连接池比较(c3p0,dbcp和proxool) 准备: 1):拷贝jar:c3p0-0.9.1.2.jar 2):build path
阅读全文
摘要:DBCP连接池是Apache提供的,性能也不错: 准备: 1):拷贝jar:commons-dbcp-1.4.jar , commons-pool-1.5.6.jar 2):build path,添加到classpath路径. 3):阅读文档:commons-dbcp-1.3-src\doc\Bas
阅读全文
摘要:1.为什么必须使用数据库连接池: 普通的JDBC数据库连接(Connectiond对象)使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection 加载到内存中,再验证用户名和密码(得花费0.05s~1s的时间),数据库的连接是比较昂贵的(创建的成本比较大)。
阅读全文
摘要:1.在开发的逻辑中经常会用到要获取主键信息的情况,比如新用户注册之后,要完善个人信息等。就需要在注册成功save之后,获取到给用户分配的id信息,以保证update的操作。 2.如何在JDBC中保存数据的时候获取自动生成的主键呢? Statement方式: int executeUpdate(Str
阅读全文
摘要:1.BLOB系列是大的二进制类型,允许存储(255个字节到4G). 二进制类型存储二进制数据(图像,音频,视频等); 在开发中,对于图片,音频,视频,我们往往是不会直接存储到数据库中的. 我们把图片,音频,视频存储到服务端磁盘中,然后在数据库表中存储其存储的位置(路径)去获取对应的信息. 2.TEX
阅读全文
摘要:批量操作(batch):当需要成批插入或者更新记录时。可以采用Java的批量更新机制. 这一机制允许多条语句一次性提交给数据库批量处理。通常情况下比单独提交处理更有效率. JDBC的批量处理语句包括下面两个方法: addBatch(String sql):添加需要批量处理的SQL语句或是参数; ex
阅读全文
摘要:事务的ACID属性: 1. 原子性(Atomicity):原子在化学中,是最小单位,不可以再分割了. 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 2. 一致性(Consistency):包装数据的完整性. 事务必须使数据库从一个一致性状态变换到另外一个一致性状态。
阅读全文
摘要:Statement 与PreparedStatement 的区别: SQl语句执行中首先服务器进行:1.安全性分析,2.SQL的语句分析。3.SQL的语句编译 4.执行。 在预编译中,如果有之前存在SQL 语句,就可以省略以上其他步骤,直接执行SQL。这样在性能上PreparedStatement要
阅读全文
摘要:使用预编译,解决拼接sql 语句的问题。 操作Student表示列如下: 数据库操作Util: properties文件: Student实体: Dao: DaoImp: Test:
阅读全文
摘要:关闭资源 注意:⚠️上面的简单封装,虽然解决了在使用过程中书写重复代码的问题,不过还存在一个问题,那就是将数据库的基本信息写死在了源代码中,这样不利于维护,如果要修改每次得修改源代码。 解决方案:把数据库的连接信息抽取到一个配置文件(properties/xml)中存储。观察发现存储的信息,是以ke
阅读全文
摘要:例如操作mysql:
阅读全文
摘要:1、java智能提示 (1). 打开Eclipse,选择打开" Window - Preferences"。 (2). 在目录树上选择"Java-Editor-Content Assist",在右侧的"Auto-Activation"找到"Auto Activation triggers for j
阅读全文
摘要:1.使用JDBC的准备环境: 2.<!--StartFragment-->JDBC的操作步骤:<!--EndFragment--> 比如 执行插入语句: 使用java7 的自动关闭资源 执行查询语句:
阅读全文
摘要:在运行框中输入:mysql -uroot -padmin -hlocalhost -P3306 用户名 -密码-连接机子-端口号 完成打开mysql
阅读全文
摘要:Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。 Annotation(注解)是JDK5.0及以后版本引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。从某些方面看,annotat
阅读全文
摘要:import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class LoadResourcesDemo { public static void main(String[] args) throws Exception { //获取加载资源的文...
阅读全文
摘要:将传入的字符串拼接成一个java类 并编译运行
阅读全文
摘要:1.字节流转换为字符流使用 实现文件拷贝 2.使用Files 工具类中自由的方法实现拷贝文件 主要是应用过程中,查看接口,以及源码的实现。在这个感觉开源还是好,比OC强太多了。
阅读全文