发表于: 2017-05-14 22:12:16
1 1180
今天完成的
1.学习hibernate
hibernate和mybatis都是优秀的orm框架,配置也比较类似
在都是用注解的情况下,hibernate的配置和mybatis有如下区别
1)实体类注解
需要在实体类上方注解@Entity和@Table
当表名与类名不同时需重新定义表名
如
@Entity
@Table(name = "company")
public class Company implements Serializable{
然后,在id上方需标注
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
public Long getId() {
return id;
}
其中@GeneratedValue(strategy = GenerationType.AUTO)是指id生成策略,默认是使用AUTO
@Column里填数据表对应的字段名
需要在实体类每个字段上方加上@Column
2)spring-hibernate的配置文件中配置数据库的地方和mybatis稍有不同
我们知道mybatis是这样的
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
hibernate是这样的,sqlSessionFactory名字变成了sessionFactory,property多了一个hibernateProperties(为毛,有知道的吗,感觉在这里好像有点鸡肋)
- <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
- <property name="dataSource" ref="dataSource"/>
- <property name="hibernateProperties">
2.还有不同的是dao实现类
首先需要定义setSessionFactory方法
然后在增删改查方法中调用sessionFactory的方法,比如新增方法可以直接调用save(user)方法
查找方法需要将部分sql语句传入
String hql = "from User";
Query query = sessionFactory.getCurrentSession().createQuery(hql);
- private SessionFactory sessionFactory;
- public void setSessionFactory(SessionFactory sessionFactory) {
- this.sessionFactory = sessionFactory;
- }
- @Override
- public void addUser(User user) {//添加用户
- sessionFactory.getCurrentSession().save(user);
- }
- @Override
- public List<User> getAllUser() {//查找所有用户信息
- String hql = "from User";
- Query query = sessionFactory.getCurrentSession().createQuery(hql);
- return query.list();
- }
2.发现项目中有一行,后来查了下这行是多余的
<context:annotation-config />,
<!--开启扫描,包含注册BeanPostProcessor-->
<!--使用了context:component-scan即包含context:annotation-config的功能,所以可以将其省去--><!-- <context:annotation-config />-->
<context:component-scan base-package="com.ptteng.carrots.replay.home.service"/>
四.遇到的问题
post接口测试如何添加cookie?
网上说需要postman点这个按钮安装插件
但打不开网页,看又要翻墙一波了
评论