![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
无道圣教主
无道胜有道
展开
-
Struts2 笔记4
Struts2 1.运行流程 2.自定义拦截器 拦截器作用和Filter类似。 它可以在action方法调用之前被调用,可以拦截请求,也可以放行请求,还可以在action方法执行完毕之后做一些处理。 Struts中已经给我们定义好了多个拦截器,可以满足我们的大部分需求。 但是有时我们会需要一个个性化的需求,比如 权限验证。 实现自定义拦截的步骤: 1) 创建一个类并实原创 2016-04-11 22:08:42 · 385 阅读 · 0 评论 -
Hibernate ORM映射多对一
多对一 生活中有很多数据直接是多对一的关联关系,例如:多个Order对应一个Customer。 关联的方向 关联是有方向的。如果从Order对象中能够获取到Customer对象,而从Customer对象中不能获取到Order对象,则关联是单向的。如果从Order和Customer对象中都能够获取到对方,则关联是双向的。我们首先来看单向的多对一关联关系。 创建持久化类 ①one:Custom原创 2016-04-11 20:27:38 · 312 阅读 · 0 评论 -
数据库知识
数据库管理1 查询所有数据库mysql> show databases;+--------------------+| Database |+--------------------+| information_schema | -- mysql元数据,基础数据| mysql | --mysql配置数据库,其中包含用户信息。(用户原创 2016-04-11 15:50:53 · 447 阅读 · 0 评论 -
hibernate ORM映射——单表映射
1 映射关系总览 ①单类→单表 ②单向n对1 ③双向1对n ④1对1基于外键 ⑤1对1基于主键 ⑥单向多对多 ⑦双向多对多2 单类→单表的映射 ①映射主键 ②映射日期类型 ③映射大对象 ④hbm文件中的其他属性 ⑤数据类型映射对照表3 Hibernate中主键生成方式 3.1 increment ①由Hibernate以递增的方式为代理主键赋值 ②Hibernate会先原创 2016-04-11 20:08:11 · 639 阅读 · 0 评论 -
Hibernate Session 事务隔离级别回顾 持久化对象的状态 Session核心方法
1 Session概述 Session接口是Hibernate向应用程序提供的操纵数据库的最主要的接口,它提供了基本的保存、更新、删除和加载Java对象的方法。 每一个Session对象都在内存中维护了一个缓存,位于缓存中的对象称为持久化对象,它和数据库表中的相关记录保持着一种对应关系。通过Session缓存,Hibernate最大限度的减少了应用程序访问数据库的次数,实现了对内存空间更加有效的原创 2016-04-11 20:00:21 · 453 阅读 · 0 评论 -
Hibernate.cfg.xml 配置
Hibernate.cfg.xml 主配置文件中主要配置:数据库连接信息、其他参数、映射信息!常用配置查看源码: hibernate-distribution-3.6.0.Final\project\etc\hibernate.properties数据库连接参数配置 例如: MySQLhibernate.dialect org.hibernate.dialect.MySQLD原创 2016-04-11 19:44:00 · 384 阅读 · 0 评论 -
Hibernate Api CRUD
|– Configuration 配置管理类对象 config.configure(); 加载主配置文件的方法(hibernate.cfg.xml) 默认加载src/hibernate.cfg.xmlconfig.configure(“cn/config/hibernate.cfg.xml”); 加载指定路径下指定名称的主配置文件 config.buildSes原创 2016-04-11 19:36:50 · 316 阅读 · 0 评论 -
Hibernate框架,简单实例
ORM概念 O, Object 对象 R, Realtion 关系 (关系型数据库: MySQL, Oracle…) M,Mapping 映射ORM, 对象关系映射!ORM, 解决什么问题? 存储: 能否把对象的数据直接保存到数据库? 获取: 能否直接从数据库拿到一个对象? 想做到上面2点,必须要有映射!总结: Hibernate与ORM的关系?原创 2016-04-11 19:27:46 · 276 阅读 · 0 评论 -
Struts中数据回显,防止表单重复提交
数据回显 数据回显,必须要用struts标签!Action中:// 进入修改页面 public String viewUpdate() { // 模拟一个对象(先获取一个id,再根据id调用service查询,把查到的结果保存到域) User userInfo = new User(); userInfo.setUserName("Jack"原创 2016-04-11 19:15:17 · 318 阅读 · 0 评论 -
模型驱动
Struts运行时候,会执行默认的拦截器栈,其中有一个拦截器,模型驱动拦截器:<interceptor name="modelDriven" class="com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor"/>@Override public String intercept(ActionInvocation invoca原创 2016-04-11 19:18:27 · 368 阅读 · 0 评论 -
Struts 简单UI标签,ognl表达式语言几个符号
<!-- 服务器标签 : 最终别解析为html标签--> <s:form action="/user_login" method="post" name="frmLogin" id="frmLogin" theme="simple"> 用户名:<s:textfield name="user.name"></s:textfield> 密码:<s:textfield原创 2016-04-11 19:09:51 · 351 阅读 · 0 评论 -
Struts数据效验
表单数据的验证: 前台验证:主要是通过JS验证, 表达数据是否合法! 后台验证:通过后台java代码进行验证! Struts也提供了数据效验的方式!Struts数据效验, 通过拦截器完成:<interceptor name="validation" class="org.apache.struts2.interceptor.validation.Annota原创 2016-04-11 19:02:06 · 243 阅读 · 0 评论 -
hibernate ORM映射:双向多对一
概念 ①双向1-n和双向n-1是完全相同的情况,只是表述方式不同。 ②要求: [1]从one的一端访问many的一端:one.getManySet(); [2]从many的一端访问one的一端:many.getOne(); 创建持久化类 one的一端 many的一端创建hbm.xml映射文件 one的一端 <set name ="orders" tabl原创 2016-04-11 20:32:48 · 304 阅读 · 0 评论 -
Hibernate ORM映射:基于外键的一对一
概念 一一对应关系,要求双方都有对方的引用。 实现方式 在Department这一端设定many-to-one关联关系,但同时给关联到Manager的外键设定唯一约束 创建持久化类 创建映射文件 Department<many-to-one name= "manager" column ="MNG_ID_FK" class= "Manager" unique="true" />原创 2016-04-11 20:37:02 · 487 阅读 · 0 评论 -
Struts2 笔记3
Struts2 1.主题 我们可以为struts的表单标签指定一个主题,常用的主题xhtml(默认)、simple(不会设置任何样式) 可以通过theme属性来设置元素的主题 theme的默认值是xhtml,如果我们不设置默认就是xhtml 设置主题的三种方式: 1.在标签的theme属性中指定原创 2016-04-11 22:02:08 · 451 阅读 · 0 评论 -
Struts2 笔记 2
Struts2中定义一组新的标签库,使用struts的标签库和JSTL类似。 Struts2标签需要结合OGNL表达式一起使用,注意Struts2中对EL支持不太好。 使用Struts标签库需要先导库: <%@ taglib prefix="s" uri="/struts-tags" %>1.通用标签<s:property value=""/>property标签可以输出对象栈中对象原创 2016-04-11 21:58:05 · 412 阅读 · 0 评论 -
struts2 笔记 1
1.Struts2简介Struts2是一个WEB端MVC框架。 MVC模式: 模型 视图 控制器 模型:分为业务模型和数据模型 视图:负责显示页面,渲染模型 控制器:接收用户请求,调用模型处理用户请求,选择视图显示页面、目前在Model2中我们使用Servlet作为控制器: Servlet主要原创 2016-04-11 21:53:10 · 2214 阅读 · 0 评论 -
高低算法
1.hilo 和 seqhilo生成器给出了两种hi/lo算法的实现。 配置方式如下:①hilo生成器<id name="id" type="id" column="id"> <generator class="hilo"> <paramname="table">hibernate_unique_key</param> <paramname="column"原创 2016-04-11 21:25:59 · 1847 阅读 · 0 评论 -
hbm文件元素属性说明
1 hibernate-mapping schema 指定所映射的数据库schema的名称。若指定该属性,则表明会自动添加该 schema前缀 catalog 指定所映射的数据库catalog的名称 default-cascade 默认值为none。设置hibernate默认的级联风格。若配置Java属性,集合映射时没有指定cascade属性,则Hibe原创 2016-04-11 21:23:25 · 825 阅读 · 0 评论 -
Hibernate管理Session
1.在Dao方法中获取Session对象 ①不建议通过参数的形式传入:使Dao层和上一层耦合 ②在Dao方法中单独获取,无法让多个Dao方法使用同一个事务 ③建议:将Session对象绑定到当前线程上,从当前线程上获取2.使用方式 ①配置<!-- 指定当前Session的管理方式是thread --><property name="hibernate.curr原创 2016-04-11 21:13:58 · 265 阅读 · 0 评论 -
二级缓存
1 Hibernate缓存 Hibernate维护了两个级别的缓存,一个是线程级别的一级缓存,一个是进程级别的二级缓存。其中一级缓存是由Session对象维护的,二级缓存是由SessionFactory维护的。 2 Web应用中的进程和线程 在Web应用中Servlet容器也就是服务器的运行对应一个大的进程,而具体每一个请求的处理则是由线程执行的。所以线程级别的一级缓存只能在当前请求处理原创 2016-04-11 21:12:35 · 505 阅读 · 0 评论 -
Hibernate 检索方式
1 概述 Hibernate提供了以下几种检索对象的方式 ●导航对象图检索方式:根据已经加载的对象导航到其他对象 ●OID检索方式:按照对象的OID来检索对象 ●HQL检索方式:使用面向对象的HQL查询语言 ●QBC检索方式:使用QBC(Query By Criteria) API来检索对象。这种API封装了基于字符串形式的查询语句,提供了更加面向对象的查询接口。 ●本地SQL检索方式:原创 2016-04-11 21:04:10 · 481 阅读 · 0 评论 -
Hibernate 检索策略
检索策略1 概述 在查询数据库时,通常可以从两个方面提升程序的性能: ①节约内存空间 当应用程序需要读取Customer对象的数据并从数据库中将Customer对象加载到内存中,如果同时加载所有关联的Order对象的集合,但是又不使用,那么这些关联的Order对象就白白浪费了许多内存空间。 ②少发送SQL语句 每发送一次SQL语句就需要获取一个数据库连接,与数据库进行一次完整的交互过程,而原创 2016-04-11 20:54:37 · 295 阅读 · 0 评论 -
Hibernate ORM映射:多对多
多对多关联关系概述 1 多对多关联关系的实际例子 一个分类可以包含很多种不同的商品 一个商品也可以属于不同的多个分类 2 域模型 3 关系模型 4 需要中间表描述多对多关联关系 5 多对多关联关系的方向 ①单向:Category中有Product的集合,反之没有。 ②双向:Category和Product中都有对方的集合。单向多对多1 实体原创 2016-04-11 20:45:52 · 664 阅读 · 0 评论 -
Hibernate ORM映射:基于主键的一对一
实现方式 Department表的主键作为外键关联到Manager表,让两个表中对应记录的主键一致 持久化类不变 创建映射文件 Department <class name ="Department" table="DEPARTMENTS"> <id name ="deptId" type="java.lang.Integer"> <column原创 2016-04-11 20:39:45 · 359 阅读 · 0 评论 -
Struts
Struts就是基于mvc模式的框架! (struts其实也是servlet封装,提高开发效率!)Struts开发步骤: 1. web项目,引入struts - jar包 2. web.xml中,引入struts的核心功能 配置过滤器 3. 开发action 4. 配置action src/struts.xml1. 引入8个jar文件2. web.xml<!原创 2016-04-11 18:46:17 · 320 阅读 · 0 评论 -
枚举
1.1 问题引入:如何限制用户输入?class Student{ private String name; // 考试等级 private String grade; //等级只能是ABCDE五个等级之一 // .. 省略get/set }// 程序调用public static void main(String[] args) { Stude原创 2016-04-11 18:37:53 · 331 阅读 · 0 评论 -
Log4J日志组件
程序中为什么用日志组件? 简单来说,为了项目后期部署上线后的维护、错误排查!Log4j, log for java, 开源的日志组件!使用步骤: 1. 下载组件,引入jar文件; log4j-1.2.11.jar 2. 配置 : src/log4j.properties 3. 使用通过根元素指定日志输出的级别、目的地: 日志输出优先级: de原创 2016-04-11 18:31:57 · 253 阅读 · 0 评论 -
数据库数据约束
1什么数据约束 对用户操作表的数据进行约束 2 默认值 作用: 当用户对使用默认值的字段不插入值的时候,就使用默认值。 注意: 1)对默认值字段插入null是可以的。 2)对默认值字段可以插入非null-- 1.1 默认值CREATE TABLE student( i原创 2016-04-11 16:10:25 · 519 阅读 · 0 评论 -
mysql基础
mysql基础 1)mysql存储结构: 数据库 -> 表 -> 数据 sql语句2)管理数据库: 增加: create database 数据库 default character utf8; 删除: drop database 数据库; 修改原创 2016-04-11 15:57:09 · 364 阅读 · 0 评论 -
JavaBean mvc 三层架构
JavaBean规范 1 必须要有无参的构造方法 2 所有成员属性必须私有化 (private) 3 必须提供公开的getter和setter方法 MVC开发模式 MVC就是servlet+jsp+javabean的开发模式 M——Model,javabean实现,封装业务数据原创 2016-04-11 15:26:01 · 1396 阅读 · 0 评论 -
JSP自定义标签
自定义标签 1 引入 需求: 向浏览器输出当前客户的IP地址 (只能使用jsp标签) 2 第一个自定义标签开发步骤 1)编写一个普通的java类,继承SimpleTagSupport类,叫标签处理器类/** * 标签处理器类 * @author APPle * 1)继承SimpleTagSupport * */public class ShowIpTag extends Simp原创 2016-04-11 15:09:23 · 330 阅读 · 0 评论 -
JSP标签
1、Jsp的9大内置对象 request——HttpServletRequet response——HttpServletResponse config——ServletConfig application——ServletContext exception——Throw原创 2016-04-11 14:51:02 · 259 阅读 · 0 评论 -
SAX解析XML文档
SAX解析工具是由Sun公司提供的,内置在jdk中:org.xml.sax.* 核心的API: SAXParser类: 用于读取和解析xml文件对象 parse(File f, DefaultHandler dh)方法: 解析xml文件 参数一: File:表示 读取的xml原创 2016-04-11 14:36:46 · 250 阅读 · 0 评论 -
Dom4j中使用xPath
xPath引入: 当使用dom4j查询比较深的层次结构的节点(标签,属性,文本),比较麻烦! xPath主要是用于快速获取所需的节点对象。在dom4j中如何使用xPath技术 1)导入xPath支持jar包 。 jaxen-1.1-beta-6.jar 2)使用xpath方法原创 2016-04-11 14:28:04 · 359 阅读 · 0 评论 -
XML解析——Dom4j
DOM解析原理: xml解析器一次性把整个xml文档加载进内存,然后在内存中构建一颗Document的对象树,通过Document对象,得到树上的节点对象,通过节点对象访问(操作)到xml文档的内容。 Dom4j 使用步骤: 1)导入dom4j的核心包。 dom4j-1.6.1.jar 2)编写Dom4j读取xml文件代码代码如下: public static v原创 2016-04-11 14:18:10 · 351 阅读 · 0 评论 -
遍历集合
遍历集合的几种方式 1、使用迭代器Iterator的方式。 2、使用增强for循环的方式。 3、如果有下标,则可以使用下标的方式。遍历数组public static void main(String[] args) { // 遍历数组: String[] arr = new String[] { "xx", "yy", "zz" }; // 1,增强的for循环原创 2016-04-11 14:07:29 · 224 阅读 · 0 评论 -
集合特性
集合的类型与各自的特性1. Collection: 单列集合1、List: 有存储顺序, 可重复 2、ArrayList: 数组实现, 查找快, 增删慢 由于是数组实现, 在增和删的时候会牵扯到数组增容, 以及拷贝元素. 所以慢。数组是可以直接按索引查找, 所以查找时较快 3、LinkedList: 链表实现, 增删快, 查找慢由于链表实现, 增加时只要让前一个元素记原创 2016-04-11 14:03:07 · 295 阅读 · 0 评论 -
UDP通讯协议
在java中网络通讯业称作为Socket(插座)通讯,要求通讯 的两台器都必须要安装Socket。不同的协议就有不同 的插座(Socket)UDP通讯协议的特点: 1. 将数据极封装为数据包,面向无连接。 2. 每个数据包大小限制在64K中 3.因为无连接,所以不可靠 4. 因为不需要建立连接,所以速度快 5.udp 通讯是不分服务端与客户端的,只分发送端原创 2016-04-11 13:38:34 · 694 阅读 · 0 评论 -
数据库设计三大范式
第一范式: 要求表的每个字段必须是不可分割的独立单元 student : name – 违反第一范式 张小名|狗娃 sutdent : name old_name –符合第一范式 张小名 狗娃第二范式: 在第一范式的基础上,要求每张表只表达一个意思。表的每个字段都和表的主键有依赖。 employe原创 2016-04-11 16:16:03 · 262 阅读 · 0 评论