1.
1 package edu.jlu.fuliang.dao.impl; 2 3 import java.util.List; 4 5 import org.springframework.orm.hibernate3.support.HibernateDaoSupport; 6 7 import edu.jlu.fuliang.dao.SingerDAO; 8 import edu.jlu.fuliang.domain.Band; 9 import edu.jlu.fuliang.domain.CompositeSinger; 10 import edu.jlu.fuliang.domain.Singer; 11 import edu.jlu.fuliang.domain.SingleSinger; 12 13 public class SingerDAOImpl extends HibernateDaoSupport implements SingerDAO{ 14 15 public void deleteSinger(Long id) { 16 getHibernateTemplate().delete(id); 17 } 18 19 public List<Band> getAllBands() { 20 return getHibernateTemplate().find("from Band"); 21 } 22 23 public List<CompositeSinger> getAllCompositeSingers() { 24 return getHibernateTemplate().find("from CompositeSinger"); 25 } 26 27 public List<Singer> getAllSingers() { 28 return getHibernateTemplate().find("from Singer"); 29 } 30 31 public List<SingleSinger> getAllSingleSingers() { 32 return getHibernateTemplate().find("from SingleSinger"); 33 } 34 35 public List<Band> getBandsByName(String name) { 36 return getHibernateTemplate().find("from Band b where b.name=?", new String[]{name}); 37 } 38 39 public Singer getSingerById(Long id) { 40 return (Singer)getHibernateTemplate().get(Singer.class, id); 41 } 42 43 public List<Singer> getSingerByRegion(String region) { 44 return getHibernateTemplate().find("from Singer s where s.region=?", new String[]{region}); 45 } 46 47 public List<Singer> getSingersByName(String name) { 48 return getHibernateTemplate().find("from Singer s where s.name=?",new String[]{name}); 49 } 50 51 public List<SingleSinger> getSingleSingersByName(String name) { 52 return getHibernateTemplate().find("from SingleSinger s where s.name=?",new String[]{name}); 53 } 54 55 public void saveSinger(Singer singer) { 56 getHibernateTemplate().save(singer); 57 } 58 59 public void updateSinger(Singer singer) { 60 getHibernateTemplate().saveOrUpdate(singer); 61 } 62 }
2.
1 package edu.jlu.fuliang.dao.impl; 2 3 import java.sql.SQLException; 4 import java.util.List; 5 6 import org.hibernate.FetchMode; 7 import org.hibernate.HibernateException; 8 import org.hibernate.Query; 9 import org.hibernate.Session; 10 import org.springframework.orm.hibernate3.HibernateCallback; 11 import org.springframework.orm.hibernate3.support.HibernateDaoSupport; 12 13 import edu.jlu.fuliang.dao.SongDAO; 14 import edu.jlu.fuliang.domain.Song; 15 16 public class SongDAOImpl extends HibernateDaoSupport implements SongDAO{ 17 18 public void delete(long id) { 19 Song song =(Song)getHibernateTemplate().get(Song.class,id); 20 getHibernateTemplate().delete(song); 21 } 22 23 public List<Song> findAll() { 24 return (List<Song>)getHibernateTemplate().execute(new HibernateCallback(){ 25 public Object doInHibernate(final Session session) 26 throws HibernateException, SQLException { 27 return session.createCriteria(Song.class).setFetchMode("", FetchMode.JOIN).list(); 28 } 29 }); 30 } 31 32 public Song findById(long id) { 33 return (Song)getHibernateTemplate().get(Song.class, id); 34 } 35 36 public List<Song> findByName(String name) { 37 return getHibernateTemplate().find("from Song s where s.name like '%" + name + "%'"); 38 } 39 40 41 public void save(Song song) { 42 getHibernateTemplate().saveOrUpdate(song); 43 } 44 45 46 public void update(Song song) { 47 getHibernateTemplate().saveOrUpdate(song); 48 } 49 50 51 public List<Song> findBySingerRegion(final String region) { 52 return (List<Song>)getHibernateTemplate().execute(new HibernateCallback(){ 53 54 public Object doInHibernate(Session session) 55 throws HibernateException, SQLException { 56 Query query = session.createQuery("from Song s left join fetch s.singer where s.singer.region=?"); 57 return query.setString(0, region).list(); 58 } 59 }); 60 } 61 }