如题,我想保存数据时使用HashMap来代替Pojo,这样可以降低逻辑层和持久层的耦合度,请问可以吗?
解决方案 »
- 为什么加了sql包还会出现PrepareStatement不能用
- hibernate关联弱问
- 同一台机器是否能安装两个版本的weblogic
- 能否用B/S实现做局域网的点对点语音通讯
- hibernate连接Mysql数据库为什么可以更新,查找和删除但是就不能插入数据
- SQL 文件名存储出错
- struts2 页面自动提交问题
- struts问题
- java在对数据库操作之后,立即查询不能查到记录,非要等一分中后才能查到记录,那位大哥遇到这样得情况,请指教!
- 在struts的标签中如何将图片做为submit?
- compasstomcat启动 $Proxy0 cannot be cast to org.hibernate.impl.SessionFactoryImpl
- struts2 一个奇怪异常
<property name="ext1" column="ext1" type="string"
length="5" />
</dynamic-component>以上是映射文件的扩展字段,但是映射文件要有ID标签啊。
private String accountName; // 账户名字
private long credit; // 账户金额
private String stockName; // 股票名字
private long stockCount; // 股票数量 /** 扩展属性信息 */
private Map<String, Object> extFields = new HashMap<String, Object>(); public Object getExtField(String name) {
synchronized (this) {
if (extFields == null) {
extFields = new HashMap<String, Object>();
return null;
}
}
return this.extFields.get(name);
} public void setExtField(String name, Object value) {
synchronized (this) {
if (extFields == null) {
extFields = new HashMap<String, Object>();
}
}
this.extFields.put(name, value);
} public long getBusinessid() {
return businessid;
} public void setBusinessid(long businessid) {
this.businessid = businessid;
} public String getAccountName() {
return accountName;
} public void setAccountName(String accountName) {
this.accountName = accountName;
} public long getCredit() {
return credit;
} public void setCredit(long credit) {
this.credit = credit;
} public String getStockName() {
return stockName;
} public void setStockName(String stockName) {
this.stockName = stockName;
} public long getStockCount() {
return stockCount;
} public void setStockCount(long stockCount) {
this.stockCount = stockCount;
} public Map<String, Object> getExtFields() {
return extFields;
} public void setExtFields(Map<String, Object> extFields) {
this.extFields = extFields;
}}<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.infotech.stock.common.db.CStockAccount"
table="StockAccount" dynamic-insert="true" dynamic-update="true">
<id name="businessid" type="long">
<column name="Businessid" />
<generator class="native">
<param name="sequence">STOCKACCOUNT_BUSINESSID</param>
</generator>
</id> <property name="accountName" type="string">
<column name="AccountName" length="16" />
</property> <property name="stockName" type="string">
<column name="StockName" length="16" />
</property> <property name="credit" type="long">
<column name="Credit" />
</property> <property name="stockCount" type="long">
<column name="StockCount" />
</property> <!-- 扩展字段 -->
<dynamic-component name="extFields">
<property name="ext1" column="ext1" type="string"
length="5" />
</dynamic-component>
</class>
</hibernate-mapping>
我想把你的StockAccount类都省了,直接用HashMap替代。
你的测试代码大概如下: StockAccount sa = new StockAccount();
sa.setBusinessid("001");
sa.set.....
session.save(sa);我想要的是: Map sa = new HashMap();
sa.put("businessid","001");
sa.put....
session.save(sa);