自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

FixedStar 的博客

IF(BOOL学习==FALSE)BOOL落后=TRUE;不断的学习,我们才能不断的前进。

  • 博客(35)
  • 问答 (3)
  • 收藏
  • 关注

原创 (20)cache

需要引入jar包:ehcache-1.2.3jar //类和(15)QL1中同 需要加ecache.xml文档 //一个session查询两次相同的内容,会发一次select语句--即支持一级缓存 @Test public void testCache1() { Session session = sf.openSession(); session

2017-11-14 11:56:49 221

原创 (19)list OR iterator

//类在(15)QL1中/* * 现阶段:用list即可。!!!! */ /*list:直接获取对象 * select category0_.id as id0_,category0_.name as name0_ from Category category0_ */ @Test public void HQ_list(

2017-11-14 11:41:32 164

原创 (18)1+N问题

1+N问题描述 1+N:官方意思:每当查询出n条记录之后,每条数据会关联的查询1次它的关联对象。 我的理解是,原本所有的信息可以一次性查询出来的,也就是简单的join连表查询,但是hibernate会先*查询1次当前对象,然后当前对象里面的n个关联对象会再次访问数据库n次。* category topic 是onetomany的关系,在topic中设置了单向的

2017-11-14 11:34:50 356

原创 (17)QBC、QBE

QBC: @Test public void HQ_1() { Session session=sf.getCurrentSession(); session.beginTransaction(); //Criteria:标准、准则、约束 Criteria c=session.createCriteria(Topic.cla

2017-11-14 11:26:26 270

原创 (16)QL2:模糊查询(%,_)、常用的函数、group by、having、子查询、update 、delete、native

/* * 功能:获取没有回复的帖子 * is empty and is not empty 判断一个集合是否为空 select topic0_.id as id2_, topic0_.category_id as category3_2_, topic0_.name as name2_ from Topic topic0_

2017-11-14 11:17:41 373

原创 (15)QL1:asc、desc、获取一定范围(用占位符)、获取一条记录中的若干字段、多次导航、左外连接、uniqueResult、聚合函数、is null

板块和主题:一对多 一个板块对应多个主题,一个主题只属于一个板块 * 主题和回复:一对多 一个主题对应多个回复 一个回复只属于一个主题* * 现在只是建立单向联系* Category类@Entitypublic class Category { private int id; private String name; @Id @GeneratedValue

2017-11-14 11:03:39 302

原创 (14)学生、分数、课程【一对多,多对多练习】

需求:通过分数可以找到课程,通过分数可以找到学生,通过学生可以找到课程。 分析关系映射: 一个学生,对应多个分数(一个分数只属于一个学生),根据需求,应该在分数中设manytoone 一个课程,会有多个成绩(一个成绩只属于一个课程),根据需求,应该在分数中设manytoone 一个学生会有多门课程,一个课程也会有多个学生,因为不要求课程中找到所有的学生,所以在学生端设manytomany。

2017-11-14 10:14:04 2925

原创 (13)树状结构

树状图是一种数据结构 ,它由n个有限节点组成一个具有层次关系的集合。每个节点有0或者多个子节点,没有父节点的节点是根节点,每个非根节点只有一个父节点,除了根节点外每个子节点可以分为多个不相交的子树。树种每个节点是相同的数据类型。 在日常生活中,也有许多这样的例子,比如一个总公司,可以有多个子公司,一个子公司又会有多个部门,因为每个子节点只能有一个父节点,所以上下层之间的关系是onetomany 和

2017-11-14 09:27:46 338

原创 (12)映射继承关系三之连接的子类(@Inheritance(strategy=InheritanceType.JOINED))

这种方式:父类存放子类和父类的公共字段, 父类和子类中存在一一对应的关系,子类的id参考父类的id@Entity@Inheritance(strategy=InheritanceType.JOINED)public class Person { private int id; private String name; @Id @GeneratedValue p

2017-11-13 18:30:29 4932

原创 (11)映射继承关系二之每个类对应一张表(@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)

这种策略支持双向的一对多关联,这里不支持IDENTITY生成器策略。因为存在多态查询,所以id在继承关系的表中必须是唯一的。这就意味着不能用AUTO和IDENTITY生成器。 在mysql中,只能用生成表id来使得多个表的id保持不同。因为父类中含有共同的属性,简单来讲id同,就在父表中,所以子表不用再写生成表了。在实体中,每个表都含有父类及子类特有的属性字段。 person类@Entity@

2017-11-13 17:52:50 3207

原创 (10)映射继承关系一之继承关系都映射在一张表中(@Inheritance(strategy=InheritanceType.SINGLE_TABLE))

EJB3支持三种类型的继承映射: • 每个类一张表(Table per class)策略: 在Hibernate中对应元素: • 每个类层次结构一张表(Single table per class hierarchy)策略:在Hibernate中对应元素 • 连接的子类(Joined subclasses)策略:在Hibernate中对应 元素 一、每个类层次结构一张表【整个继承层次结构中

2017-11-13 17:11:17 1530

原创 (9)ManyToMany-CRUD

老师与学生是多对多的关系,一个老师可以教多个学生,一个学生也可以被多个老师教 student类@Entitypublic class student { private int id; private String name; private Set<teacher> ts=new HashSet<teacher>(); @Id @GeneratedValue

2017-11-13 16:44:50 240

原创 (8)集合映射:list(@OrderBy)、map(@MapKey、map遍历方法)

通常情况下在一对多中用set即可,但是也可以用list、map一、list :在Javaee中他是有序表,所以有@OrderBy注解,这个注解的含义是一对多端输出时,可以按照多端某个字段排序输出,建表语句没有任何影响,只是从一端输出多端时,会排序输出,在默认情况下,是按照主键升序输出Group类@Entity@Table(name="_Group")public class Group {

2017-11-13 16:08:01 826

原创 (7)onetomany双向:CURD

一、Save Group类@Entity@Table(name="_Group")//对表重命名(group是关键字,不能作为表名,所以要对其重命名)public class Group { private int id; private String name; private Set<User> user=new HashSet<User>(); /*

2017-11-12 16:25:59 264

原创 (6)ManyToMany单向、双向:@JoinTable

一、manytomany单向 单向是指类层面,在下面例子中老师类可以知道要教哪些学生,学生不知被哪些老师教 **需要用到连接表**@JoinTable(name="t_s", joinColumns={@JoinColumn(name="teacher_id")},inverseJoinColumns={@JoinColumn(name="student_id")} )

2017-11-12 15:06:56 7744 1

原创 (5)OneToMany单向、双向manytoone

一、OneToMany单向 OneToMany说明是一个组知道有哪些成员,而成员不知道自己是哪个组(这是类层面的理解)。数据库方面还是多端(User)有外键属性。 若两个表中只写OneToMany,则必须写@JoinColumn(name=”groupId”),否则hibernate会当成多对多建立中间表 Group(一端)/* * 一对多,即在一端加 * 并且不需要在多端加外键。 *

2017-11-12 14:23:55 1985

原创 (4)OneToOne联合单向外键关联: @JoinColumns

Wife中是联合主键 在利用@IdClass(WifePK.class)方式时,主键类(WifePK)中的属性和Wife中的属性要相同@Entity@IdClass(WifePK.class)public class Wife { private int id; private String name; @Id public int getId() {

2017-11-12 13:18:08 1275

原创 (3)OneToOne简单外键关联

一、OneToOne单向外键关联 **解释单向: 在本例中,husband类中有wife对象(映射到表中是husband中有wife的外键),在数据库获取husband时,会获取到wife,即husband知道谁是它的wife;当在数据库获取wife时,并不知道它的husband是谁** ①Husband/* * 在生成的husband表中,主键是id 外键是wife中的id(wifeid

2017-11-12 11:54:41 1951

原创 (2)id:单个属性(AUTO、Table)联合主键三种实现方式

一、单个主键@Entity //从这个包(javax.persistence.Entity)可以看出,是个标准,不依赖于hibernate//@Table(name="_Teacher") //当model类和数据库的表名,不一致时,应该在这里指定。在这里类名为:teacher,表名是:_Teacher//生成一个表名是GENERATOR_TABLE的表,有两个字段pk_key、pk_value

2017-11-12 10:42:36 6037

原创 (1)helloworld:@Table、@Column、@Transient、@Temporal、@Enumerated

一、需要配置hibernate.cfg.xml文件<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge

2017-11-11 21:46:30 585

原创 (13)多条件查询(精确查询、模糊查询):动态拼接sql

这是在学生信息管理系统中遇到的,因为当时还没有学hibernate,所以访问数据库还是用JDBC。 需求:在查询用户信息时,可以指定如下查询条件,按照用户编号精确查询;按照姓名模糊查询(输入李可以查到所有姓李的用户);按照性别查询;按照年龄范围查询。 so查询页面如下: 按照上面的组合查询条件,这个对象,应该有一个编号(精确查询),一个姓名(模糊查询),一个性别(模糊查询),两个年龄(模糊

2017-11-07 11:47:20 10362 1

原创 (12)简单数据校验:addFieldError

index.jsp:相当于用户登录页面,这里进行简写 <body> 简单数据校验<a href="user/user_add!add?name='HAHA'">添加用户</a> </body>struct.xml<struts> <package name="user" namespace="/user" extends="struts-default">

2017-11-07 11:02:00 377

原创 (11)ExceptionMapping

当因为某些原因。发生异常时,可以对异常进行捕获,给用户友好的界面 下面的例子就是当Action发生异常后,因为result就是按照excute返回值来确定跳转到哪个页面的,所以在Action中可以返回success,这时异常抛给struct.xml,若写 exception-mapping 相当于接收到了异常,让这个mapping指向应该去哪个页面。在去往的异常页面中,可以友好的简单提示出错信息

2017-11-07 10:46:50 390

原创 (10)global-results、继承包

在一个网站中,通常用户操作失败等都会返回主页,或者共同的错误界面,若每个package下都写一个错误页面或者重返主页面,比较麻烦。当当前的action中没有对应的result时,则会找该包下global-result,若该包下没有,则会找父类的global-result 以此类推。 下面的例子: struct.xml<struts> <constant name="struts.dev

2017-11-07 10:22:03 225

原创 (9)Tag:property、set、push、bean、if、iterate、date

public class UserAction extends ActionSupport implements SessionAware, RequestAware{ private Map<String,Object> session; private User user=new User(); private Map<String,Object> request;

2017-11-07 09:57:36 213

原创 (8)includeModues(在struct.xml中include其他的.xml)

在一个项目中,通常会有多个模块,struct.xml只有一个,会给编程造成不便,所以struct2可以引入其他的xxx.xml文件,来方便编程 比如有个login.xml,它也应该放在src根目录下,内容和struct.xml一样。<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Softwa

2017-11-07 09:15:44 279

原创 (7)OGNL2:RequestAware前端设置list、set、map中每个属性,如何填写,如何获取

public class UserAction extends ActionSupport implements SessionAware,RequestAware,ServletRequestAware{/* * ActionContext只是设置设置数据,获取数据 * struct2提供一种简单使用session的方式,使用SessionAware接口来访问存储于ActionContext

2017-11-07 08:32:01 329

原创 (6)OGNL--1:访问值栈中的普通属性、对象属性、普通方法、静态方法、自写set、map、list

OgnlAction//Dog 有属性name//Cat 有属性ptivate Dog friendpublic class OgnlAction extends ActionSupport{ //private User user; private User user=new User();//手动初始化,User必须含有带空参的构造方法 //user.xxx只有传,才会

2017-11-06 20:59:07 421

原创 (5)通配符

<struts> <constant name="struts.devMode" value="true" /><!-- 开启使用开发模式,详细错误提示,否则得重新部署,才能将修改改动--> <package name="user" namespace="/actions" extends="struts-default"> <!-- 若地址栏输入http://local

2017-11-06 20:12:33 317

原创 (4)ResultType

<package name="ResultType" namespace="/r" extends="struts-default"> <action name="login" class="com.action.UserAction" > <result>/login.jsp</result> </action> <!-- result元素定义中,可

2017-11-06 19:12:17 189

原创 (3)在Action中用request、session、application和前端简单数据、对象数据传递到后端

public class LoginAction2 extends ActionSupport implements RequestAware,SessionAware, ApplicationAware { private Map<String, Object> request; private Map<String, Object> session; private Map

2017-11-06 17:08:12 2023

原创 (2)简单体验---helloworld、namespace简单解读、Action简单解读

一、为什么用struct2 设计模式就是将简单的问题复杂化,这样设计的好处是扩展性。 struct2经过structfilter中转,才能确定是哪个页面(展现),这样就可以将请求结果(视图),这样就将请求和展现分离开,可以方便视图的改变(只需在struct2中配置应该去哪个页面即可) struct2就是解决将请求和展现分隔开 二、配置 ①引入jar包 下载struct2教程:ht

2017-11-06 16:09:41 295

转载 (24)having、group by、where区别

having的用法 *having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前。而 having子句在聚合后对组记录进行筛选。*SQL实例: 一、显示每个地区的总人口数和总面积 SELECT region, SUM(population), SUM(area) FROM bbc GROUP BY region

2017-11-04 17:02:44 265

原创 (23)触发器

单sql语句触发器 当员工表进行增删改时,使得t2员工数目变化和总额发生改变 create table t1( id int, name varchar(10), salary int); create table t2( user_total int , salary_total int);//创建触发器,当在t1表添加t1记录时,在t2表用户总数+1,总额增加create tri

2017-11-04 15:46:11 349

原创 (22)存储过程

一、存储过程: 是在数据库系统中,一组为了完成特定功能的sql语句集,经编译后存储在数据库中, 用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 存储过程不仅仅是“批处理”。 存储过程是经过编译的sql语句。 二、存储过程与函数、触发器的区别? 触发器用于一些触发条件所引发的操作。触发器的执行是自动化的。 自定义函数只能通过return语句返回单个值或者表对象,

2017-11-04 15:42:41 888

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除