SSH+DB 2構築開発環境(下)
4836 ワード
1.必要なjarバッグを流し込む
(添付ファイルのサイズに関するサイトの制限のため、必要なjarパッケージを二つの部分に分けてアップロードします。位置はそれぞれhttp://zhizizhishou0104.iteye.com/blog/1993956とhttp://zhizizhishou0104.iteye.com/blog/1993988である。
2.イベントを作成します。ここではペアの多関係を例にします。
Class Room.java(one端)
(添付ファイルのサイズに関するサイトの制限のため、必要なjarパッケージを二つの部分に分けてアップロードします。位置はそれぞれhttp://zhizizhishou0104.iteye.com/blog/1993956とhttp://zhizizhishou0104.iteye.com/blog/1993988である。
2.イベントを作成します。ここではペアの多関係を例にします。
Class Room.java(one端)
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name="CLASS_ROOM")
public class ClassRoom {
@Id
private int id;
private String classroom_number;
private String classroom_name;
@OneToMany(cascade=CascadeType.ALL,mappedBy="classRoom")
private List<Student> students;
// setter getter
}
Student.java(many端)import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name="STUDENT")
public class Student {
@Id
private int id;
private String stu_number;
private String stu_name;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(updatable=false,nullable=false)
private ClassRoom classRoom;
// setter getter
}
3.ダオ層import javax.annotation.Resource;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;
import com.aia.domain.ClassRoom;
@Repository
public class ClassRoomDao extends HibernateDaoSupport{
@Resource
public void setHibenrateSessionFactory(SessionFactory sessionFactory) {
super.setSessionFactory(sessionFactory);
}
public ClassRoom saveClassRoom(ClassRoom classRoom) {
getHibernateTemplate().persist(classRoom);
return classRoom;
}
}
4.service層(ここでインターフェースをスキップし、直接に実装クラスをアップロードする)import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.aia.dao.ClassRoomDao;
import com.aia.domain.ClassRoom;
import com.aia.service.ClassRoomService;
@Service
public class ClassRoomServiceImpl implements ClassRoomService {
@Resource
private ClassRoomDao classRoomDao;
@Override
public ClassRoom saveClassRoom(ClassRoom classRoom) {
return classRoomDao.saveClassRoom(classRoom);
}
}
5.試験類import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.springframework.test.AbstractTransactionalSpringContextTests;
import com.aia.domain.ClassRoom;
import com.aia.domain.Student;
import com.aia.service.ClassRoomService;
public class ClassRoomServiceImplTest extends AbstractTransactionalSpringContextTests{
@Override
protected String[] getConfigLocations() {
return new String[] {"applicationContext.xml"};
}
private ClassRoomService classRoomService;
public void setClassRoomService(ClassRoomService classRoomService) {
this.classRoomService = classRoomService;
}
@Test
public void testSaveClassRoom(){
ClassRoom classRoom = new ClassRoom();
classRoom.setClassroom_name("classroom_name");
classRoom.setClassroom_number("123");
Student student1 = new Student();
student1.setStu_name("student_name1");
student1.setStu_number("1001");
student1.setId(5);
student1.setClassRoom(classRoom);
Student student2 = new Student();
student2.setStu_name("student_name2");
student2.setStu_number("1002");
student2.setId(6);
student2.setClassRoom(classRoom);
List<Student> lists = new ArrayList<Student>();
lists.add(student1);
lists.add(student2);
classRoom.setStudents(lists);
classRoomService.saveClassRoom(classRoom);
//
setComplete();
}
}
テストクラスでは、以下の方法でbeanを取得することもできます。 BeanFactory beanFactory = new ClassPathXmlApplicationContext("applicationContext.xml");
classRoomService = (ClassRoomService)beanFactory.getBean("classRoomService");