zoukankan      html  css  js  c++  java
  • hibernate HQL添加语句

    1.Hibernate 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;
        }

  • 相关阅读:
    spring读书笔记----Quartz Trigger JobStore出错解决
    Linux:Ubuntu16.04下创建Wifi热点
    Java:IDEA下使用JUNIT
    MYSQL:基础—存储过程
    StackExchange.Redis加载Lua脚本进行模糊查询的批量删除和修改
    EFCore执行Sql语句的方法:FromSql与ExecuteSqlCommand
    .NET Core配置文件加载与DI注入配置数据
    ASP.NET Core实现OAuth2.0的AuthorizationCode模式
    CSS实现的几款不错的菜单栏
    开发VS2008 AddIn 入门Sample
  • 原文地址:https://www.cnblogs.com/sbclmy/p/9184190.html
Copyright © 2011-2022 走看看