- 浏览: 102040 次
- 性别:
- 来自: 苏州
-
文章列表
SQL(MySQL) LEFT JOIN 会取得左表(table1)全部记录,即使右表(table2)并无对应匹配记录。LEFT JOIN 基本语法如下:
... FROM table1 LEFT JOIN table2 ON condition ...
MySQL LEFT JOIN 用法实例
下面是两个原始数据表:
article 文章表:
aid title content uid
1 文章1 文章1正文内容... 1
2 文章2 文章2正文内容... 1
3 文章3 文章3正文内容... 2
4 文章4 文章4正文内容... 4
user 用户表:
uid username email
...
http://www.cnblogs.com/luxh/archive/2012/05/31/2529233.html
JPQL:Java持久化查询语言,以面向对象的查询语法构造查询语句。
JPA使用javax.persistence.Query接口代表一个查询实例,Query实例由EntityManager通过指定查询语句构建。
以下程序中的em是EntityManager的一个实例,使用注入或通过 EntityManagerFactory 实例显式获取一个 EntityManager 实例。
1、一个基本的查询:
SELECT u FROM User u 检索所有的Us ...
实体Player:玩家。
实体Game:游戏。
玩家和游戏是多对多的关系。一个玩家可以玩很多的游戏,一个游戏也可以被很多玩家玩。
JPA中使用@ManyToMany来注解多对多的关系,由一个关联表来维护。这个关联表的表名默认是:主表名+下划线+从表名。(主表是指关系维护端对应的表,从表指关系被维护端对应的表)。这个关联表只有两个外键字段,分别指向主表ID和从表ID。字段的名称默认为:主表名+下划线+主表中的主键列名,从表名+下划线+从表中的主键列名。
需要注意的:
1、多对多关系中一般不设置级联保存、级联删除、级联更新等操作。
2、可以随意指定一方为关系维护端,在 ...
JPA的一对多映射(双向)
- 博客分类:
- JPA
实体Company:公司。
实体Employee:雇员。
Company和Employee是一对多关系。那么在JPA中,如何表示一对多的双向关联呢?
JPA使用@OneToMany和@ManyToOne来标识一对多的双向关联。一端(Company)使用@OneToMany,多端(Employee)使用@ManyToOne。
在JPA规范中,一对多的双向关系由多端(Employee)来维护。就是说多端(Employee)为关系维护端,负责关系的增删改查。一端(Company)则为关系被维护端,不能维护关系。
一端(Company)使用@OneToMany注释的mappedB ...
JPA的主键产生策略
- 博客分类:
- JPA
@GeneratedValue:主键的产生策略,通过strategy属性指定。
主键产生策略通过GenerationType来指定。GenerationType是一个枚举,它定义了主键产生策略的类型。
1、AUTO 自动选择一个最适合底层数据库的主键生成策略。如MySQL会自动对应auto increment。这个是默认选项,即如果只写@GeneratedValue,等价于@GeneratedValue(strategy=GenerationType.AUTO)。
2、IDENTITY 表自增长字段,Oracle不支持这种方式。
3、SEQUENCE 通过序列产生主键,MySQ ...
JPA的命名查询实际上就是给查询语句起个名字,执行查询的时候就是直接使用起的这个名字,避免重复写JPQL语句,使查询在代码中得到更多的重用。我不怎么喜欢使用命名查询,因为我不想把查询语句写在实体中,使得实体看起来变得复杂臃肿。
1、使用@NamedQuery注解在实体类中定义命名查询。
@NamedQuery(name="findAllUser",query="SELECT u FROM User u")
@NamedQuery中的属性name指定命名查询的名称,query属性指定命名查询的语句。
如果要定义多个命 ...
Apache Shiro 授权
- 博客分类:
- Spring
Apache Shiro 授权
授权,亦即访问控制,是管理资源访问的过程,换言之,也就是控制在一个程序中“谁”有权利访问“什么”。
授权的例子有:是否允许这个用户查看这个页面,编辑数据,看到按钮,或者从这台打印机打印?这些决定一个用户可以访问什么的决断。
授权组件
授权有三个核心组件,在Shiro中我们经常要用到它们:权限(permissions)、角色(roles)和用户(users)。
权限(Permissions)
权限是Apache Shiro中安全策略最基本的组件,它们是一组关于行为的基本指令,以明确表示在一个程序中什么可以做。一个很好定义的 ...
自从 JPA 于 2006 年首次被引入之后,它就得到了 Java 开发社区的广泛支持。该规范的下一个主要更新 —— 2.0 版本 (JSR 317) —— 将在 2009 年年底完成(见 参考资料)。JPA 2.0 引入的关键特性之一就是 Criteria API,它为 Java 语言带来 ...
关于hashCode与equals方法的说明
- 博客分类:
- java基础
关于hashCode与equals方法的说明:
1)对于一个程序的一次执行过程中,同一个对象的hashCode计算的结果一定相同,但是对于同一个程序的不同执行过程中,不要求其hashCode一定相同。
2)对于两个对象,如果使用equals方法比较,结果为true,那么这两个对象的hashCode值一定相同
3)对于两个对象,如果使用equals方法比较,结果为false,那么这两个对象的hashCode值不要求一定不同(但是如果不同可以提高程序性能)
当 我们向HashSet中add对象,它首先调用它的HashCode方法,得到这个HashCode的返回整数值,这个整数值就会映射到s ...
Struts,Spring,Hibernate优缺点
Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解其内部实现机制。 Struts开放源码框架的创建是为了使开发者在构建基于Java Servlet和JavaServer Pages(JSP) ...
JSF 应用程序生命周期的六个阶段是:
1. 恢复视图
2. 应用请求值;处理事件
3. 处理检验;处理事件
4. 更新模型值;处理事件
5. 调用应用程序;处理事件
6. 显示响应
这六个阶段是 JSF 处理表单 GUI 的一般次序。这个列表按照每个阶段可能的执行次序和事件处理进行排列,但是 JSF 生命周期并不是固定的。可以改变执行的次序,跳过某些阶段或完全脱离生命周期。例如,如果一个无效的请求值被复制到组件,那么会重新显示当前视图,并可能不执行某些阶段。
还可以选择完全脱离 JSF,比如将处理委托给一个 ser ...
方法一:
String baseFolder = this.getServletConfig().getServletContext().getRealPath("/").replace("\\", "/");
方法二:
public String getRealPath(){
String folderPath=this.getClass().getClassLoader().getResource("").getPath();
String realPath = folderPath.substring ...
public class IrisTest {
public static void main(String[] args) {
try
{
HttpClient client = new HttpClient();
String fullAbsolutePath;
String dateString = new Simpl ...
js获取图片实际的宽度
- 博客分类:
- jsp页面效果
<img src="http://www.hao123.com/images/guangg/2009year.jpg" width="200" id="imgs"/>
<script>
document.write("宽:"+imgs.width+" 高:"+imgs.height)
</script><br>
<img src="http://www.hao123.com/images/guangg/2009year.jp ...
#对应id
点对应class
不加对应html标签
Class与ID的区别
一个Class是用来根据用户定义的标准对一个或多个元素进行定义的。打个比较恰当的比方就是剧本:一个Class可以定义剧本中每个人物的故事线,你可以通过CSS,Javascript等来使用这个类。因此你可以在一个页面上使用 class="Frodo" ,class="Gandalf",class="Aragorn"来区分不同的故事线。
还有一点非常重要的是你可以在一个文档中使用任意次数的 Class。
...