在hibernate.cfg.xml配置文件中配置
<property name="hibernate.jdbc.fetch_size">50</property>
//每次查询50条
<property name="hibernate.jdbc.batch_size">50</property>
//每次更新50条
posted @
2009-03-16 18:03 simplye 阅读(841) |
评论 (0) |
编辑 收藏
1 List students =session.createQuery("select c.name, count(s) from Student s join s.classes c " +
2 "group by c.name order by c.name").list();
3 for (Iterator iter=students.iterator(); iter.hasNext();) {
4 Object[] obj = (Object[])iter.next();
5 System.out.println(obj[0] + ", " + obj[1]);
6 }
posted @
2009-03-05 22:43 simplye 阅读(869) |
评论 (0) |
编辑 收藏
1.
List students = session.createQuery("select c.name, s.name from Student s inner join s.classes c").list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
System.out.println(obj[0] + "," + obj[1]);
}
2.
//左连接
List students = session.createQuery("select c.name, s.name from Classes c left join c.students s").list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
System.out.println(obj[0] + "," + obj[1]);
}
posted @
2009-03-05 22:37 simplye 阅读(2610) |
评论 (0) |
编辑 收藏
/*
构建HQL语句进行查询
*/
1.
Query query = session.createQuery("select s.id, s.name from Student s where s.name like ? ");
//用?占位符
query.setParameter(0, "%1%");
//添加查询条件
List students = query.list();
//返回查询列表
2.
//可以用in()来进行多条件查询,使用setParameterList把所有的查询的条件放入list中
//可以用 :参数 来传递参数
List students = session.createQuery("select s.id, s.name from Student s where s.id in(:myids) ")
.setParameterList(myids, new Object[]{1,2})
.list();
3.
//日期查询语句
List students = session.createQuery("select s.id, s.name from Student s where date_format(s.createTime, '%Y-%m')=? ")
.setParameterList(0, 2009-1)
.list();
4.
//日期段的查询
//首先构建一个日期对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
List students = session.createQuery("select s.id, s.name from Student s where s.createTime between ? and ? ")
.setParameter(0, sdf.setparse("2009-1-1 00:00:00"))
.setParameter(1, sdf.setparse("2009-2-1 23:59:59"))
.list();
posted @
2009-03-05 16:20 simplye 阅读(6410) |
评论 (1) |
编辑 收藏
web容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接更容器中的环境变量接口交互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。
EJB容器:Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。
JNDI:(Java Naming & Directory Interface)JAVA命名目录服务。主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。
JMS:(Java Message Service)JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。
JTA:(Java Transaction API)JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。
JAF:(Java Action FrameWork)JAVA安全认证框架。提供一些安全控制方面的框架。让开发者通过各种部署和自定义实现自己的个性安全控制策略。
RMI/IIOP:(Remote Method Invocation /internet对象请求中介协议)他们主要用于通过远程调用服务。例如,远程有一台计算机上运行一个程序,它提供股票分析服务,我们可以在本地计算机上实现对其直接调用。当然这是要通过一定的规范才能在异构的系统之间进行通信。RMI是JAVA特有的。
posted @
2009-03-05 11:01 simplye 阅读(2609) |
评论 (0) |
编辑 收藏
1.
/**
单一属性查询
*/
List s = session.createQuery("select name from Student").list();
//返回的类型与实体类中相应的属性类别一直.
2.
/**
多个属性查询
*/
List s = session.createQuery("select id, name from Student").list();
//查询多个属性,返回值为对象的数组
//数组元素类型和对应的实体类型一直
//数组长度与查询的条件相同
3./**
返回student实体类,
还要在实体类中提供空的构造函数,和带参数的构造函数
*/
List s = session.createQuery("select new Student(id, name) from Student").list();
//返回的便是实体类
4.
可以实用别名,用as
5.
/*
list()与iterate()方法的区别.
*/
iterate()迭代中会发生N+1的现象,它与session的绑定.当session在缓存中存在时用iterate()会提高一定的效率.没有在发生N+1现象
list()只会向数据库查询的SQL,除非配置查询缓存.
posted @
2009-03-04 17:17 simplye 阅读(314) |
评论 (0) |
编辑 收藏
/*
悲观锁
*/
Inventory inv = (Inventory)session.load(Inventory.class, 1, LockMode.UPGRADE);
// 在数据库设置为不可重复读下设置,LockMode为枚举类型.
/*
乐观锁
*/
Inventory inv = (Inventory)session.load(Inventory.class, 1);
// 在映射文件中添加<version>字段,在读取时读取version字段进行判断,如果version数值小于等于当前数值则报错.
posted @
2009-03-04 14:39 simplye 阅读(226) |
评论 (0) |
编辑 收藏
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<set name="setValue" table="t_set_value"> // set的映射
<key column="set_id"/> // 外键关联
// <composite-element> 对象集合
<element type="string" column="set_value"> // 字符串集合 放入表中
</set>
<list name="listValue" table="t_list_value"> //list的映射
<key column="list_id"/>
<list-index column="list_index"/> // 将存入表数据排序放入一个字段中
<element type="string" column="list_value"/>
</list>
<array name="arrayValue" table="t_array_value">
<key column="array_id"/>
<array-index column="array-index"/>
<element type="string" column="array_value"/>
</array>
<map name="mapValue" table="t_map_value">
<key column="map_id" />
<map-key type="string" column="map_key"/> //存放map中的key值
<element type="string" column="map_value"/> //存放map中的value值
</map>
</class>
</hibernate-mapping>
posted @
2009-03-03 17:59 simplye 阅读(242) |
评论 (0) |
编辑 收藏
1 <?xml version="1.0"?>
2 <!DOCTYPE hibernate-mapping PUBLIC
3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
4 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
5 <hibernate-mapping >
6 <class name="com.simplye.hibernate.User" table="t_user">
7 <id name="id">
8 <generator class="native"/>
9 </id>
10 <property name="name"/>
11
12 <many-to-one name="group" column="t_group"/>
13
14 </class>
15 </hibernate-mapping>
多段实用外键
1 <?xml version="1.0"?>
2 <!DOCTYPE hibernate-mapping PUBLIC
3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
4 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
5 <hibernate-mapping >
6 <class name="com.simplye.hibernate.Group" table="t_group">
7 <id name="id">
8 <generator class="native"/>
9 </id>
10 <property name="name"/>
11 </class>
12 </hibernate-mapping>
posted @
2009-03-02 14:43 simplye 阅读(187) |
评论 (0) |
编辑 收藏
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.simplye.hibernate">
<class name="User" table="t_user">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<component name="contact"> //附属类
<property name="email">
</component>
</class>
</hibernate-mapping>
posted @
2009-03-02 01:53 simplye 阅读(339) |
评论 (0) |
编辑 收藏
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.simplye.hibernate">
<class name="Animal" table="t_animal"> //可以设置抽象类,使抽象类不被创建 abstruct="true"
<id name="id">
<generator class="uuid"/> //或者手动生成assigned
</id>
<property name="name"/>
<property name="sex"/>
<union-subclass name="Pig" table="t_pig">
<property name="weight"/>
</union-subclass>
<union-subclass name="Brid" table="t_brid">
<property name="height">
</union-subclass>
</class>
</hibernate-mapping>
posted @
2009-03-02 01:26 simplye 阅读(164) |
评论 (0) |
编辑 收藏
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.simplye.hibernate">
<class name="Animal" table="t_animal">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="sex"/>
<joined-subclass name="Pig" table="t_pig">
<key column="pig"/>
<property name="weight"/>
</joined-subclass>
<joined-subclass name="Bird" table="t_brid">
<key column="brid"/>
<property name="height"/>
</joined-subclass>
</class>
</hibernate-mapping>
posted @
2009-03-01 22:46 simplye 阅读(319) |
评论 (0) |
编辑 收藏
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.simplye.hibernate">
<class name="Animal" table="t_animal">
<id name="id">
<generator class="native"/>
</id>
<discriminator column="type" type="string"/>
<property name="name"/>
<property name="sex"/>
<subclass name="Pig" discriminator-value="P">
<property name="weight"/>
</subclass>
<subclass name="Bird" discriminator-value="B">
<property name="height" />
</subclass>
</class>
</hibernate-mapping>
posted @
2009-03-01 22:38 simplye 阅读(133) |
评论 (0) |
编辑 收藏