hibernate HQL添加语句


1.H ibernate HQL添加语句 save();方法
使用HQL语句来完成插入操作是不能实现的,不管你使用insert into....values...还是insert into.....select.....都不行
原因:因为Hibernate的HQL语言是用于面向对象实现查询功能的,
然而在插入操作中是不会牵涉任何查询动作的,所以HQL不能用于insert语句的插入操作,而select、update、 delete语句都可以有可能的查询实现,比如:
select语句时标准的查询,这个就不用再说了
update语句:update 对象名 set.....where......
delete:delete from 对象名 where .....
所以,update与delete牵涉到where的查询筛选过程,这个过程是需要采用HQL来实现的,然而insert永远牵涉不到查询筛选过程,所以Hibernate没有对插入做insert实现

2.插入
2.1 springMVC下的hibernate原生sql插入:
@Override
    public void register(String userName, String passWord, String email, String address) {
        
        String sql = "insert into user(userName,passWord,email,address)values('"+userName+"','"+passWord+"','"+email+"','"+address+"')";
        getSession().createSQLQuery(sql).executeUpdate();
    }
3.查询
3.1 springMVC下的hibernate原生sql查询:
@Override
    public User checkUsername(String userName){
     
        String sql="select * from user where userName= '"+userName+"'";//注意拼接字符串不能多加空格
        User user =  (User) getSession().createSQLQuery(sql).addEntity(User.class).uniqueResult();
        return user;
    }
3.2 springMVC下的hibernatehql查询:
@Override
    public User checkUsername(String userName){
        //执行hql语言
        String hql= "from User u where u.userName=?";
        User user = (User) getSession().createQuery(hql).setParameter(0, userName).uniqueResult();
        return user;
    }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM