概述
**1.applicationContext.xml配置文件**
<!-- 配置dao层bean -->
<bean id="edi" class="dao.impl.EmpDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
// autowire-candidate:候选类,false则不候选,避免byType多个实体类的问题
<bean id="edi2" class="dao.impl.EmpDaoImpl2" autowire-candidate="false"> <property name="sessionFactory" ref="sessionFactory"></property>
</bean>
//autowire:自动注入:byName/byType/construtor
//byType:如果实现同一个接口的实现类有多个,那么byType就会报错
<bean id="empBiz" class="biz.impl.EmpBizImpl" autowire="byType">
<!-- <property name="edi" ref="edi"></property> -->
</bean>
<bean id="ea" class="action.EmpAction" scope="prototype">
<property name="empBiz" ref="empBiz"></property>
</bean>
2.EmpDao接口类
package dao;
import java.util.List;
import entity.Emp;
public interface EmpDao {
public List<Emp> findAllEmp();
public List<Emp> findEmpByCondition(Emp e);
public List<Emp> findEmpByNameParam(Emp e);
public List<Emp> findEmpByExemple(Emp e);
public Emp findEmpById(int id);
public int addEmp(Emp e);
public void modify(Emp e);
public List<Emp> findEmpByPage(int pageNo,int pageSize);
public void updateBatchEmpSal(double sal);
}
3.EmpDaoImpl实现类
package dao.impl;
import java.sql.SQLException;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import entity.Emp;
import dao.*;
public class EmpDaoImpl extends HibernateDaoSupport implements EmpDao {
// 参数数组
@SuppressWarnings("unchecked")
@Override
public List<Emp> findAllEmp() {
List<Emp> elist = this.getHibernateTemplate().find(
"from Emp where empno=? and ename=?",
new Object[] { 7788, "SCOTT" });
return elist;
}
// 对象作为参数数组
@Override
public List<Emp> findEmpByCondition(Emp e) {
@SuppressWarnings("unchecked")
List<Emp> elist = this.getHibernateTemplate().find(
"from Emp where empno=? and ename=?",
new Object[] { e.getEmpno(), e.getEname() });
return elist;
}
// 命名查询
@SuppressWarnings("unchecked")
@Override
public List<Emp> findEmpByNameParam(Emp e) {
@SuppressWarnings("unchecked")
String param[] = { "empno", "ename" };
Object value[] = { e.getEmpno(), e.getEname() };
List<Emp> elist = this.getHibernateTemplate().findByNamedParam(
"from Emp where empno=:empno and ename=:ename", param, value);
return elist;
}
// 通过对象
@Override
public List<Emp> findEmpByExemple(Emp e) {
@SuppressWarnings("unchecked")
List<Emp> elist = this.getHibernateTemplate().findByExample(e);
return elist;
}
// 通过对象
@Override
public Emp findEmpById(int id) {
Emp e = this.getHibernateTemplate().get(Emp.class, id);
return e;
}
// 添加对象
@Override
public int addEmp(Emp e) {
int result = (Integer) this.getHibernateTemplate().save(e);
return result;
}
// 修改对象
@Override
public void modify(Emp e) {
this.getHibernateTemplate().update(e);
}
// 分页查询
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public List<Emp> findEmpByPage(final int pageNo,final int pageSize) {
List<Emp> elist = getHibernateTemplate().execute(
new HibernateCallback() {
@Override
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery("from Emp");
query.setFirstResult((pageNo-1)*pageSize);
query.setMaxResults(pageSize);
return query.list();
}
});
return elist;
}
//批量处理
@SuppressWarnings({ "unchecked", "rawtypes" })
public void updateBatchEmpSal(final double sal){
int result=getHibernateTemplate().execute(
new HibernateCallback() {
@Override
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query=session.createQuery("update Emp set sal=sal+?");
query.setParameter(0,sal);
return query.executeUpdate();
}
}
);
System.out.println(result);
}
}
最后
以上就是安详寒风为你收集整理的Spring自动注入byType的全部内容,希望文章能够帮你解决Spring自动注入byType所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复