代码改变世界

hibernate源码分析1-保存一个对象

2017-10-15 15:57  chen.simon  阅读(328)  评论(0)    收藏  举报

要点

  1. 用了event的方式贯穿CRUD的过程 值得学习
  2. dynamic-insert 支持 插入时 可选 全字段插入 还是仅仅有值的字段插入。
  3. 返回主键的值 用了 Serializable 类型作为方法签名返回值 可以兼容long int String等主键值类型
  4. 真正的插入动作的代码:
public Serializable executeAndExtract(PreparedStatement insert) throws SQLException {
			insert.executeUpdate();
			ResultSet rs = null;
			try {
				rs = insert.getGeneratedKeys();
				return IdentifierGeneratorHelper.getGeneratedIdentity(
						rs,
						persister.getIdentifierType()
				);
			}
			finally {
				if ( rs != null ) {
					rs.close();
				}
			}
		}

--EOF--