Spring Hibernate通过id获取元组

时间:2015-05-12 10:36:38

标签: spring hibernate

我正在尝试创建一个简单的“教师”数据库。我能够创建一个向数据库添加新教师的方法,现在我需要能够获得一个并通过“Id”删除一个。我想要一些帮助,我应该如何实现它。我添加了以下代码文件:AppConfig,Teacher(实体类),ITeacherDao(接口),TeacherDao(接口实现)和主方法TimeStarApplication的类。

的AppConfig

package com.superum.timestar;

import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
import org.hibernate.SessionFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.orm.hibernate4.HibernateTemplate;
import org.springframework.orm.hibernate4.HibernateTransactionManager;
import org.springframework.orm.hibernate4.LocalSessionFactoryBuilder;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import com.superum.timestar.dao.ITeacherDao;
import com.superum.timestar.dao.TeacherDao;
import com.superum.timestar.entity.Teacher;
@Configuration 
@EnableTransactionManagement
public class AppConfig {  
    @Bean  
        public ITeacherDao teacherDao() {  
           return new TeacherDao();  
        }
    @Bean
    public HibernateTemplate hibernateTemplate() {
        return new HibernateTemplate(sessionFactory());
    }
    @Bean
    public SessionFactory sessionFactory() {
        return new LocalSessionFactoryBuilder(getDataSource())
           .addAnnotatedClasses(Teacher.class)
           .buildSessionFactory();
    }
    @Bean
    public DataSource getDataSource() {
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/time_star");
        dataSource.setUsername("root");
        dataSource.setPassword("password");

        return dataSource;
    }
    @Bean
    public HibernateTransactionManager hibTransMan(){
        return new HibernateTransactionManager(sessionFactory());
    }
} 

教师

package com.superum.timestar.entity;


import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="teachers")
public class Teacher {

    @Id@GeneratedValue 
    @Column(name="t_id")
    private int Id;

    @Column(name="t_name")
    private String name;

    @Column(name="t_lastname")
    private String lastname;

    @Column(name="t_phone")
    private String phone;
    @Column(name="t_age")
    private int age;

    public int getId() {
        return Id;
    }

    public void setId(int id) {
        Id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getLastname() {
        return lastname;
    }

    public void setLastname(String lastname) {
        this.lastname = lastname;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public int getAge() {
        return age;
    }

public void setAge(int age) {
    this.age = age;
}

}

ITeacherDAO

    package com.superum.timestar.dao;

    public interface ITeacherDao {

        public void addTeacher(String name, String lastname, String phone, int age);
    //  public void getTeacher(int id);
``    //    public void deleteTeacher();

}

TeacherDao

package com.superum.timestar.dao;

import javax.transaction.Transactional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate4.HibernateTemplate;

import com.superum.timestar.entity.Teacher;


@Transactional
public class TeacherDao implements ITeacherDao{

    @Autowired  
    private HibernateTemplate hibernateTemplate;
    public void addTeacher(String name, String lastname, String phone, int age){
        Teacher teacher = new Teacher();
        teacher.setName(name);
        teacher.setLastname(lastname);
        teacher.setPhone(phone);
        teacher.setAge(age);
        hibernateTemplate.save(teacher);
    }
//  I need to create get by Id 
//  public void getTeacher(int Id){
//      
//  }

我希望这个问题并不完全可怕。

}

1 个答案:

答案 0 :(得分:0)

ITeacherDAO

package com.superum.timestar.dao;

public interface ITeacherDao {

    public void addTeacher(String name, String lastname, String phone, int age);
    public Teacher getTeacher(int id); //Method to get the teacher by id
    public void deleteTeacher(int id); //Method to delete the teacher by id
}

TeacherDao

package com.superum.timestar.dao;

import javax.transaction.Transactional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate4.HibernateTemplate;

import com.superum.timestar.entity.Teacher;


@Transactional
public class TeacherDao implements ITeacherDao{

@Autowired  
private HibernateTemplate hibernateTemplate;
public void addTeacher(String name, String lastname, String phone, int age){
    Teacher teacher = new Teacher();
    teacher.setName(name);
    teacher.setLastname(lastname);
    teacher.setPhone(phone);
    teacher.setAge(age);
    hibernateTemplate.save(teacher);
}

public Teacher getTeacher(int id){
   Teacher teacher = (Teacher)hibernateTemplate.get(Teacher.class, id);
   return teacher;
}

public void deleteTeacher(int id){
   Teacher teacher = (Teacher)hibernateTemplate.get(Teacher.class, id);
   hibernateTemplate.delete(teacher);
}