使用 HibernateTemplate 进行持久化操作 执行的时候不报错,但数据库的持久化操作没有一点作用,问了好多人,说没有声明事务和提交事务, 用的是别人搭的的架构,事务已经有了,自动提交事务的,所以和事务没有关系,,搞了好久最后终于知道怎么回事了,真是一个让人蛋疼的问题啊!

/**
* 删除该群里的所有用户(解散群聊)
* @author 80818647@qq.com
* @param groupId 群ID
*/
public void deletChatGroupUser(final long groupId) {
execute(new HibernateCallback<ChatGroup>() {
public ChatGroup doInHibernate(Session session) throws HibernateException {
session
.createSQLQuery("DELETE FROM user_chat_group WHERE chat_group_id=:groupId")
.setLong("groupId", groupId) //因为少了这行代码,所以导致一直不报错,但是数据库还没反应。
// **只要是手写SQL对数据库进行了更改最后都是要加入.executeUpdate(); 除了select以外
.executeUpdate(); return null;
}
});
}

  

 获取一个对象

    /**
* 获取群对象
* @author 80818647@qq.com
* @param  groupId 群ID
* @return ChatGroup( 群组对象) 当前用户在此群的信息
*/
public ChatGroup getChatGroupById(final long groupId) {
return execute(new HibernateCallback<ChatGroup>() {
public ChatGroup doInHibernate(Session session) throws HibernateException {
return (ChatGroup) session
.createSQLQuery("SELECT * FROM chat_group WHERE id=:groupId")
.addEntity(ChatGroup.class)
.setLong("groupId", groupId)
.uniqueResult(); //返回一个唯一结果 对象
}
});
}

count查询返回一记录数

    //注意返回的必须是BigInteger类型
public BigInteger getTotalCount(final long postCategoryId) {
return execute(new HibernateCallback<BigInteger>() {
public BigInteger doInHibernate(Session session) throws HibernateException {
return (BigInteger) session
.createSQLQuery("SELECT count(*) FROM post where deleted > 0 and published > 0 and post_category_id=:postCategoryId ")
.setLong("postCategoryId", postCategoryId)
.uniqueResult(); }
});
}

使用HibernateTemplate手写源生SQL的【增删改查】 操作的更多相关文章

  1. Linq to SQL 的增删改查操作

    Linq,全称Language Integrated Query,是C#语言的一个扩展,可以将数据查询直接集成到编程语言本身中. Linq分为查询语法和方法语法,说白了查询语法就是 from wher ...

  2. 【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建

    数据库的创建和sql语句增删改查 1. 载入驱动. 2. 连接数据库. 3. 操作数据库. 创建表: create table person( _id integer primary key, nam ...

  3. 手撸Mysql原生语句--增删改查

    mysql数据库的增删改查有以下的几种的情况, 1.DDL语句 数据库定义语言: 数据库.表.视图.索引.存储过程,例如CREATE DROP ALTER SHOW 2.DML语句 数据库操纵语言: ...

  4. 分享一个自己写的MVC+EF “增删改查” 无刷新分页程序

    分享一个自己写的MVC+EF “增删改查” 无刷新分页程序 一.项目之前得添加几个组件artDialog.MVCPager.kindeditor-4.0.先上几个效果图.      1.首先建立一个数 ...

  5. 数据库基本查询语句(SQL常用增删改查语句 简单复习 mark)

    SQL常用增删改查语句 1增 1.1[插入单行]insert [into] <表名> (列名) values (列值)例:insert into Strdents (姓名,性别,出生日期) ...

  6. (转)SQLite数据库增删改查操作

    原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...

  7. Android SQLite 数据库 增删改查操作

    Android SQLite 数据库 增删改查操作 转载▼ 一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NU ...

  8. 如何搭建一个WEB服务器项目(二)—— 对数据库表进行基本的增删改查操作

    使用HibernateTemplate进行增删改查操作 观前提示:本系列文章有关服务器以及后端程序这些概念,我写的全是自己的理解,并不一定正确,希望不要误人子弟.欢迎各位大佬来评论区提出问题或者是指出 ...

  9. PHP程序中使用PDO对象实现对数据库的增删改查操作的示例代码

    PHP程序中使用PDO对象实现对数据库的增删改查操作(PHP+smarty) dbconn.php <?php //------------------------使用PDO方式连接数据库文件- ...

随机推荐

  1. Qt开发UDP

    一.单播 1.声明udp对象 QUdpSocket* udpClient: 2.new出对象 udpClient = new QUdpSocket(this); 3.分配本地地址(如果不分配,使用系统 ...

  2. Python的operator.itemgetter函数和sorted函数

    写这篇文章的目的是之前在<机器学习实战>用Python3实现KNN算法时用到的几个函数不太懂, 地址: 1- https://github.com/hitergelei/Self-Lear ...

  3. Django object filter查询[转]

    用PYTHON ,DJANGO 做站,在通常的情况下,需要用到 orM 的查询方法,比如object.filter(tag__contains='keywords').... 在这种情况下,如果你跟踪 ...

  4. 添加vue调试工具vue-devtolls

    1.在使用脚手架vue-cli.js下载好node-modules 2.在node-modules目录下找的vue-devtools文件(如果没有可以用npm install vue-devtools ...

  5. 从配置maven环境到maven项目的新建

    话不多说,直接入正题. 一.配置maven 环境 首先安装最新版支持javaee的eclipse.我这里下载的版本是eclipse-jee-mars-2-win32-x86_64的新版(我是2017年 ...

  6. Codeforces Beta Round #61 (Div. 2) D. Petya and His Friends 想法

    D. Petya and His Friends time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  7. (转) Nova是如何统计OpenStack资源

    引言 运维的同事常常遇到这么四个问题: Nova 如何统计 OpenStack 计算资源? 为什么 free_ram_mb, free_disk_gb 有时会是负数? 即使 free_ram_mb, ...

  8. hadoop环境搭建(linux单机版)

    一.在Ubuntu下创建hadoop用户组合hadoop用户 1.创建hadoop用户组      addgroup hadoop 2.创建hadoop用户      adduser -ingroup ...

  9. Tensorflow中的命名空间scope

    1.name_scope 在tensorflow中有两种声明变量的方式,tf.get_variable()和tf.Variable(). name_scope对于tf.get_variable()无效 ...

  10. Java中常见的比较器的实现方法

    在Java中经常会涉及到对象数组的排序问题,那么就涉及到对象之间的比较问题. 通常对象之间的比较可以从两个方面去看: 第一个方面:对象的地址是否一样,也就是是否引用自同一个对象.这种方式可以直接使用& ...