有三种方式在项目中使用hibernate,在这里使用注解的方式:
Spring集成hibernate后不再需要Hibernate.cfg.xml配置文件了。
1. 导包
引入hibernate的包:
以及:
2. 配置
在spring的配置文件中配置数据源,及sessionFactory。
<!-- 数据源 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/test"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="packagesToScan" >
<list>
<value>com.glodon.po</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate_show_sql">true</prop>
<prop key="hibernate_format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
其中sessionFactory中配置了需要扫的po包。
3. 添加user表实体对象
@Entity
@Table(name="user")
public class User implements Serializable{
private Integer ID;
private String name;
private Integer age;
private Integer height;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="ID")
public Integer getID() {
return ID;
}
public void setID(Integer iD) {
ID = iD;
}
@Column(name="name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Column(name="age")
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Column(name="height")
public Integer getHeight() {
return height;
}
public void setHeight(Integer height) {
this.height = height;
}
}
4. 写dao层
@Repository
public class UserDao {
@Resource(name="sessionFactory")
private SessionFactory sessionFactory;
public List<User> getAll(){
Session session = sessionFactory.openSession();
String sHql = "from User";
Query query = session.createQuery(sHql);
List<User> users = query.list();
for (User u : users) {
System.out.println(u.getID() + "===" + u.getName());
}
return users;
}
}
5. 写service
@Service
public class UserService {
@Autowired
UserDao userdao;
public List<User> getAll(){
return userdao.getAll();
}
public void save(User user){
userdao.save(user);
}
}
6. 写controller
@Controller
@RequestMapping("/user")
public class UsrController {
@Autowired
UserService userService;
@ResponseBody
@RequestMapping("/allUsers")
public String allUsers(){
List<User> users = userService.getAll();
for (User u : users) {
System.out.println(u.getID() + "===" + u.getName());
}
return "";
}
}
7. 测试
访问:http://localhost:8080/springMVCShare/user/allUsers
输出: