(七)Hibernate中使用JDBC
2024-09-05 04:16:59
- 在hibernate中获取connection数据库连接有两种方法:(操作数据库常用这种方法)
- 1. session.doReturningWork 返回一个对象,适用于查询方法
- 2. session.doWork 不返回对象,适用于增删改
案例一:
package action; import java.sql.Connection;
import java.sql.SQLException; import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.cache.spi.QueryResultsRegion;
import org.hibernate.jdbc.ReturningWork; import bean.User;
import util.HibernateUtil; public class Query_JDBC {
public static void main(String[] args) {
Query_JDBC.jdbc();
} /**
* 在Hibernate中获取Connection接口
*/
private static void jdbc() { Session session = null;
Transaction tran = null; try { session = HibernateUtil.getSession();
tran = session.beginTransaction(); User user = session.doReturningWork(new ReturningWork<User>() { @Override
public User execute(Connection conn) throws SQLException {
QueryRunner queryRunner = new QueryRunner();
String sql = "select username,userid,is_admin as isadmin from user where userid=1"; //数据库中的is_admin和bean中的isdmin不一致
User user = queryRunner.query(conn, sql,
new BeanHandler<User>(User.class)); return user;
} }); System.out.println("username=" + user.getUsername() + "\t"
+ "userid=" + user.getUserid() + "\t" + "isadmin?"
+ user.getIsAdmin()); tran.commit();
} catch (Exception e) {
e.printStackTrace();
tran.rollback();
} finally {
HibernateUtil.closeSession();
} } }
结果:
代码在下面章节
最新文章
- WPF界面布局——Canvas
- [JavaScript]顺序的异步执行
- VMware Fusion 中如何复制centos/linux虚拟机
- 零件分组_DP
- 【HDU】1846 Brave Game
- situations where MyISAM will be faster than InnoDB
- 如何查看postfix的版本
- PS-添加前景色
- DWZ(JUI) 教程 中如何整合第三方jQuery插件
- python运维开发之第四天
- ASP.NET MVC导入excel到数据库
- eclipse 小方法
- smtp模块使用
- 33.Linux-实现U盘自动挂载(详解)
- Swift学习第二天--面向对象
- [物理学与PDEs]第1章习题15 媒介中电磁场的电磁动量密度向量与电磁动量流密度张量
- Ubuntu18.04下make menuconfig缺少ncurses库
- Spring Boot默认Initializer(1)——ConfigurationWarningsApplicationContextInitializer
- REACT Missing “key” prop for element
- 在用mybatis向MySQL数据库中插入时间时报错:Incorrect datetime value: &#39;&#39; for column &#39;&#39; at row 1
热门文章
- Go 语言入门(二)方法和接口
- mybatis的maven配置
- 富文本编辑器handyeditor,上传和预览图片的host地址不一样
- python开发-实现redis中的发布订阅功能
- pytorch中的学习率调整函数
- 严重性 代码 说明 项目 文件 行 禁止显示状态错误 C1128 节数超过对象文件格式限制: 请使用 /bigobj 进行编译。
- 《最长的一帧》 osg3.4 osgViewer::View::init() osgViewer::Viewer::getContexts()
- 26 Flutter仿京东商城项目 购物车之 event_bus事件广播 事件监听
- 一百四十一:CMS系统之根据板块过滤显示帖子
- laravel构建联合查询