package com.fisher.base.service.impl;import com.fisher.base.dao.impl.BaseDaoImpl;
import com.fisher.base.po.SuperObject;
import com.fisher.base.service.IBaseService;import org.springframework.beans.factory.annotation.Required;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.io.Serializable;
import java.util.List;import javax.annotation.Resource;/**
* Created with IntelliJ IDEA.
* User: zhangliao
* Date: 13-3-10
* Time: 涓嬪崍3:43
* To change this template use File | Settings | File Templates.
*/
@Service("baseService")
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
public class BaseServiceImpl<T extends SuperObject> implements IBaseService<T> {
private BaseDaoImpl<T> dao;
@Resource(name="baseDao")
@Required
public void setDao(BaseDaoImpl<T> dao){
this.dao = dao;
}
@Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public T getEntitybyId(Class<T> clazz, Serializable id) {
return (T) dao.getEntityById(clazz,id);
} @Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public List<T> getAllEntity(final Class<T> clazz) {
return dao.getAllEntity(clazz);
} @Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public final boolean save(final T obj){
System.out.print(dao);
return dao.save(obj);
} @Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public final boolean delete(final T obj){
return dao.delete(obj);
} @Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public final boolean saveAll(T...objs){
return dao.saveAll(objs);
} @Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public final boolean deleteAll(T...objs){
return dao.deleteAll(objs);
}
}package com.fisher.base.dao.impl;/**
* Created with IntelliJ IDEA.
* User: zhangliao
* Date: 13-3-10
* Time: 涓嬪崍2:54
* To change this template use File | Settings | File Templates.
*/import java.io.Serializable;
import java.util.List;
import com.fisher.base.dao.IBaseDao;
import com.fisher.base.po.SuperObject;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;@Repository("baseDao")
public class BaseDaoImpl<T extends SuperObject> extends HibernateDaoSupport implements IBaseDao<T> {
@Override
@SuppressWarnings("unchecked")
public T getEntityById(Class<T> clazz, Serializable id) {
return (T) getSession().load(clazz,id);
}
@Override
@SuppressWarnings("unchecked")
public final List<T> getAllEntity(Class<T> clazz) {
return getSession().createQuery("from "+clazz.getName()).list();
}
@Override
public final boolean save(T obj){
getSession().save(obj);
return true;
}
@Override
public final boolean delete(T obj){
getSession().delete(obj);
return true;
}
@Override
public final boolean saveAll(T...objs){
for (T obj : objs){
save(obj);
}
return true;
}
@Override
public final boolean deleteAll(T...objs){
for(T obj : objs){
delete(obj);
}
return true;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd" default-autowire="byName">
<!-- 使用 annotation -->
<context:annotation-config />
<!-- 使用 annotation 自动注册bean,并检查@Controller, @Service, @Repository注解已被注入 -->
<context:component-scan base-package="com.fisher" />
<!-- hibernate属性配置 -->
<context:property-placeholder location="classpath:hibernate/hibernate.properties"/>
<!-- Hibernate 配置管理 -->
<import resource="applicationContext-persistence.xml" />
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd"> <!-- C3P0 数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${hibernate.connection.driver_class}"/>
<property name="jdbcUrl" value="${hibernate.connection.url}"/>
<property name="properties">
<props>
<prop key="user">${hibernate.connection.username}</prop>
<prop key="password">${hibernate.connection.password}</prop>
</props>
</property>
</bean>
<!-- SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.fisher.*.po"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
<!--<prop key="hibernate.cache.provider_class">${hibernate.cache.provider_class}</prop>-->
<!--<prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop> -->
<!--<prop key="hibernate.cache.use_second_level_cache">${hibernate.cache.use_second_level_cache}</prop>-->
</props>
</property>
</bean>
<!-- 配置事务管理 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 配置注解实现管理事务(cglib:proxy-target-class="true") -->
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />
</beans>SS2H
import com.fisher.base.po.SuperObject;
import com.fisher.base.service.IBaseService;import org.springframework.beans.factory.annotation.Required;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.io.Serializable;
import java.util.List;import javax.annotation.Resource;/**
* Created with IntelliJ IDEA.
* User: zhangliao
* Date: 13-3-10
* Time: 涓嬪崍3:43
* To change this template use File | Settings | File Templates.
*/
@Service("baseService")
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
public class BaseServiceImpl<T extends SuperObject> implements IBaseService<T> {
private BaseDaoImpl<T> dao;
@Resource(name="baseDao")
@Required
public void setDao(BaseDaoImpl<T> dao){
this.dao = dao;
}
@Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public T getEntitybyId(Class<T> clazz, Serializable id) {
return (T) dao.getEntityById(clazz,id);
} @Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public List<T> getAllEntity(final Class<T> clazz) {
return dao.getAllEntity(clazz);
} @Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public final boolean save(final T obj){
System.out.print(dao);
return dao.save(obj);
} @Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public final boolean delete(final T obj){
return dao.delete(obj);
} @Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public final boolean saveAll(T...objs){
return dao.saveAll(objs);
} @Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public final boolean deleteAll(T...objs){
return dao.deleteAll(objs);
}
}package com.fisher.base.dao.impl;/**
* Created with IntelliJ IDEA.
* User: zhangliao
* Date: 13-3-10
* Time: 涓嬪崍2:54
* To change this template use File | Settings | File Templates.
*/import java.io.Serializable;
import java.util.List;
import com.fisher.base.dao.IBaseDao;
import com.fisher.base.po.SuperObject;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;@Repository("baseDao")
public class BaseDaoImpl<T extends SuperObject> extends HibernateDaoSupport implements IBaseDao<T> {
@Override
@SuppressWarnings("unchecked")
public T getEntityById(Class<T> clazz, Serializable id) {
return (T) getSession().load(clazz,id);
}
@Override
@SuppressWarnings("unchecked")
public final List<T> getAllEntity(Class<T> clazz) {
return getSession().createQuery("from "+clazz.getName()).list();
}
@Override
public final boolean save(T obj){
getSession().save(obj);
return true;
}
@Override
public final boolean delete(T obj){
getSession().delete(obj);
return true;
}
@Override
public final boolean saveAll(T...objs){
for (T obj : objs){
save(obj);
}
return true;
}
@Override
public final boolean deleteAll(T...objs){
for(T obj : objs){
delete(obj);
}
return true;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd" default-autowire="byName">
<!-- 使用 annotation -->
<context:annotation-config />
<!-- 使用 annotation 自动注册bean,并检查@Controller, @Service, @Repository注解已被注入 -->
<context:component-scan base-package="com.fisher" />
<!-- hibernate属性配置 -->
<context:property-placeholder location="classpath:hibernate/hibernate.properties"/>
<!-- Hibernate 配置管理 -->
<import resource="applicationContext-persistence.xml" />
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd"> <!-- C3P0 数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${hibernate.connection.driver_class}"/>
<property name="jdbcUrl" value="${hibernate.connection.url}"/>
<property name="properties">
<props>
<prop key="user">${hibernate.connection.username}</prop>
<prop key="password">${hibernate.connection.password}</prop>
</props>
</property>
</bean>
<!-- SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.fisher.*.po"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
<!--<prop key="hibernate.cache.provider_class">${hibernate.cache.provider_class}</prop>-->
<!--<prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop> -->
<!--<prop key="hibernate.cache.use_second_level_cache">${hibernate.cache.use_second_level_cache}</prop>-->
</props>
</property>
</bean>
<!-- 配置事务管理 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 配置注解实现管理事务(cglib:proxy-target-class="true") -->
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />
</beans>SS2H
解决方案 »
- static方法中为什么能通过(实例名.private变量)来使用私有变量??
- jsp页面控件
- hibernate查询时HQL语句中出现??,识别不了中文.
- 请教一个POI的问题!读取EXCEL报错! 急! 请各位大侠帮帮我!
- 关于struts2标签optiontransferselect的用法
- Linux访问Windows服务器下的java WebService拒绝(Windows访问可以)特急,很多天了!!!
- 请问一下在开发java项目时候,一般都是选择什么样的数据库?为什么?
- String 的split("|")问题,怎么分不开?
- 对JDK源码的疑惑(也是对接口的疑惑)
- JSP 获取项目路径获取 各种情况 链接
- spring中aop通配符
- 如何将一个表生成JSON树型结构?
你是想使用类型进行注解呢,还是属性名来注解呢?想想然后查查吧,亲~
另种不一样哦~