随笔 - 15  文章 - 5  trackbacks - 0
<2024年3月>
252627282912
3456789
10111213141516
17181920212223
24252627282930
31123456

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

在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 阅读(834) | 评论 (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 阅读(859) | 评论 (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 阅读(2606) | 评论 (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 阅读(6399) | 评论 (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 阅读(2600) | 评论 (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 阅读(303) | 评论 (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 阅读(219) | 评论 (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 阅读(235) | 评论 (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 阅读(180) | 评论 (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 阅读(331) | 评论 (0)编辑 收藏
仅列出标题  下一页