发表于: 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(为毛,有知道的吗,感觉在这里好像有点鸡肋)

  1.     <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">  
  2.         <property name="dataSource" ref="dataSource"/>  
  3.         <property name="hibernateProperties"> 

2.还有不同的是dao实现类

首先需要定义setSessionFactory方法

然后在增删改查方法中调用sessionFactory的方法,比如新增方法可以直接调用save(user)方法

查找方法需要将部分sql语句传入

String hql = "from User";  

Query query = sessionFactory.getCurrentSession().createQuery(hql);


    1.     private SessionFactory sessionFactory;  
    2.       
    3.     public void setSessionFactory(SessionFactory sessionFactory) {  
    4.         this.sessionFactory = sessionFactory;  
    5.     }  
    6.   
    7.     @Override  
    8.       
    9.     public void addUser(User user) {//添加用户  
    10.         sessionFactory.getCurrentSession().save(user);  
    11.     }  
    12.   
    13.     @Override  
    14.         public List<User> getAllUser() {//查找所有用户信息  
    15.         String hql = "from User";  
    16.         Query query = sessionFactory.getCurrentSession().createQuery(hql);  
    17.           
    18.         return query.list();  
    19.     }  

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点这个按钮安装插件

但打不开网页,看又要翻墙一波了


返回列表 返回列表
评论

    分享到