首页 > 其他分享 >Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) part3

Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) part3

时间:2023-06-04 12:06:43浏览次数:43  
标签:Flex J2EE hibernate return param id import clazz public


Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) part3                                   ----add spring  & hibernate

1. 在WEB-INF\lib 下添加 spring 、 hibernate 常用jar,包括mysql数据库的连接驱动

 

Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) part3_hibernate

 

2.在mysql数据库中创建数据库并添加测试数据

语句如下:

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(11) NOT NULL default '0',
  `password` varchar(11) NOT NULL default '0',
  `age` int(11) default '0',
  `email` varchar(50) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=REDUNDANT;
INSERT INTO `user` VALUES (1,'lww','1234',22,'[email protected]');
INSERT INTO `user` VALUES (2,'xyp','1234',22,'[email protected]');

3.在src 创建以下文件

Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) part3_hibernate_02

其中HibernateDao.java

package com.core.hibernate;

 

import java.io.Serializable;

import java.util.List;

 

import org.hibernate.Criteria;

import org.hibernate.Query;

import org.hibernate.SQLQuery;

import org.hibernate.criterion.Criterion;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import org.springframework.stereotype.Repository;

 

import com.core.utils.ReflectUtils;

 

 

 

/**

 * 扩展HibernateDaoSupport的泛型基类

 * @param <T> 实体类型

 */

@Repository

public class HibernateDao<T> extends HibernateDaoSupport{

 

    protected Class<T> entityClass;

 

    /**

     * 在构造函数中利用反射机制获得参数T的具体类

     */

    public HibernateDao() {

       entityClass = ReflectUtils.getClassGenricType(getClass());

    }

    

    /**

     * 根据实体类与ID获得对象

     * @param clazz 实体类

     * @param id 主键ID

     */

    public <X> X get(final Class<X> clazz,final Serializable id) {

       return (X) getSession().get(clazz, id);

    }

    

    /**

     * 根据id获得对象

     * @param id 主键ID

     */

    public T get(Serializable id){

        return get(entityClass, id);

    }

    

    /**

     * 删除对象

     * @param entity 实体类

     */

    public void delete(final Object entity) {

       getSession().delete(entity);

    }

 

    /**

     * 根据ID删除对象

     * @param id 主键ID

     */

    public void delete(final Serializable id) {

       delete(get(id));

    }

    

    /**

     * 根据实体类与ID删除对象

     * @param clazz 实体类

     * @param id 主键ID

     */

    public void delete(final Class clazz, final Serializable id){

       delete(get(clazz,id));

    }

    

    /**

     * 保存对象

     * @param entity 保存的实体对象

     */

    public void save(final Object entity) {

       getSession().saveOrUpdate(entity);

    }

 

    /**

     * 获取所有数据

     * @param entityClass 参数T的反射类型

     */

    public <X> List<X> getAll(final Class<X> entityClass) {

       return createCriteria(entityClass).list();

    }

    

    /**

     * 获取所有数据

     */

    public List<T> getAll() {

       return query();

    }

    

    

    /**

     * 根据条件获取数据

     * @param criterions 数量可变的Criterion

     */

    public List<T> query(final Criterion... criterions) {

       return createCriteria(criterions).list();

    }

    

    /**

     * HQL方式查询

     * @param hql 符合HQL语法的查询语句

     * @param values 数量可变的条件值,按顺序绑定

     */

    public Query createQuery(final String hql,final Object... values){

        Query query = getSession().createQuery(hql);

        int j = values.length;

        for(int i = 0; i < j; i++)

            query.setParameter(i, values[i]);

        return query;

    }

    

    /**

     * SQL方式查询

     * @param sql 符合SQL语法的查询语句

     * @param values 数量可变的条件值,按顺序绑定

     */

    public SQLQuery createSQLQuery(final String sql,final Object... values){

        SQLQuery query = getSession().createSQLQuery(sql);

        if (values != null) {

           for (int i = 0; i < values.length; i++) {

              query.setParameter(i, values[i]);

           }

       }

        return query;

    }

    

    /**

     * 根据类型创建查询对象

     * @param clazz 类型

     */

    public Criteria createCriteria(finalClass clazz) {

       return getSession().createCriteria(clazz);

    }

    

    /**

     * 对象化查询

     * @param entityClass 参数T的反射类型

     * @param criterions 数量可变的Criterion

     */

    public Criteria createCriteria(finalClass clazz,final Criterion... criterions){

        Criteria criteria = getSession().createCriteria(clazz);

        for (Criterion c : criterions) {

           criteria.add(c);

       }

        return criteria;

    }

    

    /**

     * 对象化查询

     * @param criterions 数量可变的Criterion

     */

    public Criteria createCriteria(final Criterion... criterions){

    return createCriteria(entityClass, criterions);

    }

}

 

########################

ReflectUtils.java

 

package com.core.utils;

 

import java.lang.reflect.ParameterizedType;

import java.lang.reflect.Type;

 

/**

 * 反射工具类

 */

public class ReflectUtils {

    

    /**

     * 获得超类的参数类型,取第一个参数类型

     * @param <T> 类型参数

     * @param clazz 超类类型

     */

    public static <T> Class<T> getClassGenricType(finalClass clazz) {

       return getClassGenricType(clazz, 0);

    }

    

    /**

     * 根据索引获得超类的参数类型

     * @param clazz 超类类型

     * @param index 索引

     */

    public static Class getClassGenricType(finalClass clazz,final int index) {

       Type genType = clazz.getGenericSuperclass();

       if (!(genType instanceof ParameterizedType)) {

           return Object.class;

       }

       Type[] params = ((ParameterizedType)genType).getActualTypeArguments();

       if (index >= params.length || index < 0) {

           return Object.class;

       }

       if (!(params[index] instanceofClass)) {

           return Object.class;

       }

       return (Class) params[index];

    }

}

#########################

Administrator.java

 

 

package com.pkms.entity;

 

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import static javax.persistence.GenerationType.IDENTITY;

import javax.persistence.Id;

import javax.persistence.Table;

 

/**

 * Administrator entity. @author MyEclipse Persistence Tools

 */

@Entity

@Table(name = "administrator", catalog = "pkms")

public class Administrator implements java.io.Serializable {

 

    // Fields

 

    private Integer id;

    private String loginName;

    private String password;

 

    // Constructors

 

    /** default constructor */

    public Administrator() {

    }

 

    /** full constructor */

    public Administrator(String loginName, String password) {

       this.loginName = loginName;

       this.password = password;

    }

 

    // Property accessors

    @Id

    @GeneratedValue(strategy = IDENTITY)

    @Column(name = "id", unique = true, nullable =false)

    public Integer getId() {

       return this.id;

    }

 

    public void setId(Integer id) {

       this.id = id;

    }

 

    @Column(name = "loginName", length = 11)

    public String getLoginName() {

       return this.loginName;

    }

 

    public void setLoginName(String loginName) {

       this.loginName = loginName;

    }

 

    @Column(name = "password", length = 11)

    public String getPassword() {

       return this.password;

    }

 

    public void setPassword(String password) {

       this.password = password;

    }

 

}

 

###########

AdministratorDAO.java

 

 

package com.pkms.dao;

 

 

import java.util.List;

 

 

import org.hibernate.Query;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.flex.remoting.RemotingDestination;

import org.springframework.stereotype.Repository;

 

import com.core.hibernate.HibernateDao;

import com.pkms.entity.Administrator;

 

 

@SuppressWarnings("unchecked")

@Repository("administratorDAO")

public class AdministratorDAO extends HibernateDao<Administrator>{

    

    @Autowired

    private SessionFactory sessionFactory;

    public AdministratorDAO(){

       super();

    //  System.out.println("AdministratorDAO init"+sessionFactory==null);

    }

    public List  getByName(String loginName){

        try {

           Session session=super.getSession();

           String sql="select u.username,u.password,u.age,u.email from user u where u.username ='"+loginName+"'";

           Query query=session.createSQLQuery(sql);

           List list=query.list();

           if(list!=null&&list.size()>0){

              System.out.println(list.get(0));

           }

           return list;

       } catch (Exception e) {

           e.printStackTrace();

           return null;

       }

       

    }

}

 

 

 

 

 

##############################

AdministratorService.java

 

package com.pkms.service;

 

import java.util.List;

 

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.flex.remoting.RemotingDestination;

import org.springframework.flex.remoting.RemotingInclude;

import org.springframework.stereotype.Service;

 

import com.pkms.dao.AdministratorDAO;

 

@RemotingDestination(channels = { "my-amf", "my-secure-amf" })

@Service("administratorService")

public class AdministratorService {

 

    @Autowired

    private AdministratorDAO administratorDAO;

 

    @RemotingInclude

    public List firstApp(String info) {

 

        List list = administratorDAO.getByName(info);

       System.out.println(info+"坑爹的有木有" + list);

       return list;// 返回给FLEX

 

    }

 

}

 


标签:Flex,J2EE,hibernate,return,param,id,import,clazz,public
From: https://blog.51cto.com/u_9427273/6410285

相关文章

  • Flex 4.6 XML搜索、匹配示例,完整代码
    效果见图初始化界面输入“设置”,进行搜索、匹配后界面下面是代码<?xmlversion="1.0"encoding="utf-8"?><s:Applicationxmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="l......
  • 由“Jasperrpeorts 4.1.2升级到5.1.2对flex项目的解析”到AS3 带命名空间的XML的操作
    项目中,对Jasperrpeorts-4.1.2核心包进行了升级,发现,前端flex无法对Jasperrpeorts的格式进行解析了~iReport4.1设计的模版可以解析,而iReport4.6设计的模版就不行了~断点后,对比了从后台传过来的Jasperrpeorts的xml数据,发现存在差异 4.1.2包生成的xml数据jasperPrint标签......
  • Flex/AS3/flash player支持屏蔽右键菜单,自定义菜单,并设置相应的菜单事件(示例,图解)..
    播放器版本11.2以后支持右键菜单屏蔽及自定义菜单1.更新播放器,11.2以上版本http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_3.swchttp://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_4.swchttp://download.macro......
  • Flutter灵活布局要掌握的两个控件Expanded和Flexible
    Expanded和Flexible介绍在Flutter中,Expanded和Flexible是两个用于控制子组件尺寸的Widget,它们都可以用于实现灵活的布局。ExpandedWidget会自动将子组件的尺寸扩展到父组件剩余的空间,而FlexibleWidget则会自动调整子组件的尺寸以适应父组件的尺寸。具体来说,ExpandedWidget......
  • UniFi USW-Flex 室内-室外 POE 交换机
    选择理由选择理由是是因为要户外使用,对比下户外可以使用的POE交换机并不是很多。UniFiUSW-Flex室内-室外5端口PoE千兆交换机能够支持在户外和户内使用。户外使用需要具有基本的防水性能,尤其是冬天比较寒冷的时候也需要具备一定的环境耐受性。USW-Flex可以安装到户外......
  • hibernate session
       ......
  • Hibernate 映射关系
    orm框架是对jdbc的封装           每次都会生成新的数据表 ......
  • display:flex
    display:flex是CSS3中的一种布局方式,它可以让元素以弹性盒子模型的方式进行排列,从而实现灵活的布局效果。该属性可以应用于任意元素,使其成为一个弹性容器,内部的子元素则根据弹性容器的排列规则进行布局。使用display:flex属性时,弹性容器的子元素会默认成为弹性项目,它们可以通过设......
  • 【随手记录】Unable to create requested service [org.hibernate.engine.jdbc.env.sp
    链接数据库报错 Unabletocreaterequestedservice[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]出现这个问题基本是数据库的方言dialect或者驱动driver_class有问题,可以确认下dialect或者driver_class的配置和自己要链接的库、库版本是否一致,比如:spring.jpa......
  • Hibernate使用实例
    示例1:创建实体类和映射importjavax.persistence.*;@Entity@Table(name="students")publicclassStudent{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)privateLongid;@Column(name="name")privateStringname......