Hibernate實現數據插入(hql insert 實現)

SSH項目,今天用到向數據庫插入數據,寫好了hql語句但是報錯。於是百度了一下。

因爲Hibernate的HQL語言是用於面向對象實現查詢功能的,
然而在插入操作中是不會牽涉任何查詢動作的,所以HQL不能用於insert語句的插入操作,而select、update、delete語句都可以有可能的查詢實現,比如:
select語句時標準的查詢,這個就不用再說了
update語句:update 對象名 set…where…
delete:delete from 對象名 where …
所以,update與delete牽涉到where的查詢篩選過程,這個過程是需要採用HQL來實現的,然而insert永遠牽涉不到查詢篩選過程,所以Hibernate沒有對插入做insert實現。

有的解決方案說,將hql語句換成sql語句。於是更改如下:

public void save(String username, String password,String role) {
        String sql = "insert into  user(username,password,role) values('"+username+"','"+password+",'"+role+"')";
        getSession().createSQLQuery(sql).executeUpdate();
    }

但是,我的還是一直報錯,如圖:
在這裏插入圖片描述
很遺憾,我沒有解決這個問題,但是我看到另一種解決辦法:

UserEntity userEntity = new UserEntity();
        userEntity.setUsername(getUsername());
        userEntity.setPassword(getPassword());
        userEntity.setRole("manager");
        userService.saveUser(userEntity);

這個是可以實現的,插入成功!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章