Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) part3----add spring & hibernate
1. 在WEB-INF\lib 下添加 spring 、 hibernate 常用jar,包括mysql数据库的连接驱动
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,'lww@qq.com');
INSERT INTO `user` VALUES (2,'xyp','1234',22,'xyp@136.com');
3.在src 创建以下文件
其中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
}
}
下载地址:
http://download.csdn.net/detail/kkkloveyou/4079410
分享到:
相关推荐
自己写的一个Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring)part1.pdf
Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) part4.pdf 终结版
Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) part3.pdf 第三部分。。add spring and hibernate
自己写的一个Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) part2.pdf 这个是第二部分,循序渐进,让初学者慢慢掌握搭框架的方法
一个 Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) 本实例为一个 flex 与 java通信项目。前端采用cairngorm框架,后台 采用hibernate+spring 每个部署 步骤,附详细 图文解释。旨在 采用 一种快速开发 ...
使用flex 4.5 + Spring 3.0 + Hibernate 3.3 + Cairngorm 2.2.1 + BlazeDS 3.3.0 + Spring BlazeDS Integration 1.0.3整合出的一个登录的小demo·
分步骤搭建整合流行开发框架 整合了Flex+BlazeDS+Spring+iBatis+Cairngorm+pureMVC 迅速进入开发环境
Flex4系列教程 本系列教程目标:使初学者了解富网络应用概念,理解并...3. Flex + BlazeDS + Spring() + iBATIS + pureMVC 4. Flex + BlazeDS + Spring BlazeDS Integration + Spring(>= 2.5.6) + iBATIS + pureMVC
Flex+.Net+Cairngorm+Fluorine的HelloWorld演示 用于学习flex和.net之间的通讯,flex的 Cairngorm框架学习。
里面只是环境搭建和代码步骤 需要工程的可以加我qq:494462967
flex+cairngorm+java 实例
NULL 博文链接:https://ynpanhong.iteye.com/blog/842029
用户注册,前台alidator验证,后台分页,查询
非常好的东西,喜欢的下载下来吧spring 3.0jdbcTemplete+flex4.6+pureMvc+cairngorm2.2.2+blazeds, 最新出炉,可以选择pureMvc和cairngorm2.2.2两种框架
使用flex+spring+hibernate 数据库mysql 主要功能添加、分页查询、批量更新、批量删除 数据库由hibernate自动创建(需修改hiberante配置) 下载后评论加1分记得评级
NULL 博文链接:https://wangjiang988-163-com.iteye.com/blog/1008912
flex+Cairngorm+blazeds整合.doc
本系列教程目标:使初学者了解富网络应用概念,理解并掌握以下四种...3. Flex + BlazeDS + Spring() + iBATIS + pureMVC 4. Flex + BlazeDS + Spring BlazeDS Integration + Spring(>= 2.5.6) + iBATIS + pureMVC