SSH整合(三)
前面已经配置好了spring配置文件,现在需要通过实例来验证spring和hibernate的整合是否成功。
?
1.? 实现将用户信息保存至数据库
?
???? 首先需要建立用户信息的实体类,并采用注解的方式实现与数据库的映射关系,代码如下:
?
????
package com.gyjx19e.om.bean;
?
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
?
import org.hibernate.annotations.GenericGenerator;
?
@Entity
@Table(name="USER_INFO")
public class Login {
???? private String id;
???? private String name;
???? private String password;
???? private String description;
???? private String groupId;
???? private String createDate;
???? private String delFlg;
????
???? public Login(){
????
???? }
???? public Login(String name,String password,String description,String createDate,String delFlg){
???? this.name = name;
???? this.password = password;
???? this.description = description;
???? this.createDate = createDate;
???? this.delFlg = delFlg;
???? }
????
???
??? @Id
??? @Column(name="ID",length=50)
??? @GeneratedValue(generator="idGenerator")
??? @GenericGenerator(name="idGenerator",strategy="uuid")
??? public String getId() {
?????? return id;
??? }
??? public void setId(String id) {
?????? this.id = id;
??? }
???
??? @Column(name="NAME",unique=true,nullable=false,length=30)
??? public String getName() {
?????? return name;
??? }
??? public void setName(String name) {
?????? this.name = name;
??? }
???
??? @Column(name="PASSWORD",nullable=false,length=30)
??? public String getPassword() {
?????? return password;
??? }
??? public void setPassword(String password) {
?????? this.password = password;
??? }
???
??? @Column(name="DESCRIPTION",length=100)
??? public String getDescription() {
?????? return description;
??? }
??? public void setDescription(String description) {
?????? this.description = description;
??? }
???
??? @Column(name="GROUP_ID",length=50)
??? public String getGroupId() {
?????? return groupId;
??? }
??? public void setGroupId(String groupId) {
?????? this.groupId = groupId;
??? }
???
??? @Column(name="CREATE_DATE",nullable=false)
??? public String getCreateDate() {
?????? return createDate;
??? }
??? public void setCreateDate(String createDate) {
?????? this.createDate = createDate;
??? }
???
??? @Column(name="DEL_FLG",nullable=false)
??? public String getDelFlg() {
?????? return delFlg;
??? }
??? public void setDelFlg(String delFlg) {
?????? this.delFlg = delFlg;
??? }
????
}
?
2. 需要建立业务逻辑层
?
?? 接口代码:
?
??
package com.gyjx19e.om.service;
?
import com.gyjx19e.om.bean.Login;
?
public interface LoginService {
??? public void save(Login login);
???
}
?
?? 实现类代码:
?
??
package com.gyjx19e.om.service.impl;
?
import javax.annotation.Resource;
?
import org.hibernate.SessionFactory;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.gyjx19e.om.bean.Login;
import com.gyjx19e.om.service.LoginService;
?
@Service @Transactional
public class LoginServiceImpl implements LoginService{
???????? @Resource SessionFactory sessionFactory;?? //注解注入
???????? public void save(Login login) {
?????????????????? System.out.println("2222");
?????????????????? sessionFactory.getCurrentSession().persist(login);
???????? }
?
}
?
3. 需要对上述代码进行单元测试,来确定spring和hibernate的集成是否正确
?
?? 测试步骤如下:
?
?? a. 新建一个junit单元测试
?
????? 右键-new-Junit Test Case- New Junit4 Test
????? 点击click here 引入包
????? 包名为junit.test
????? 命名为LoginTest.java
?
?? b. 在LoginTest.java中加入
?????
?????? public class LoginTest{
????????????? private static LoginService loginservice;
????????????
????????????? @BeforeClass
????????????? public static void setUpBeforeClass() throws Exception{
??????????????????? try{
??????????????????????????? ApplicationContext act = new ClassPathXmlApplicationContext("beans.xml");
??????????????????????????? loginService = (LoginService)act.getBean("loginServiceImpl");
?????????????????????}catch(RuntimeException e){
?
??????????????????????????? e.printStackTrace();
????????????????????? }
?????????????? }
?
????????????? @Test
?????????????? public void save(){
????????????????????? loginService.save(new Login("w","w","w","w","w"));
??????????????? }
?
????????????? @Test
?????????????? public void list(){
??????????????????????loginService.list();
???????????????}
?