第二次插入就报错?
表结构
CREATE TABLE `cloumn` (
`c_id` varchar(16) NOT NULL,
`u_id` varchar(16) default NULL,
`c_name` varchar(100) default NULL,
`c_sort` int(11) default NULL,
`c_beizhu` varchar(100) ,
PRIMARY KEY (`c_id`)
)
2.配置文件
<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >

<hibernate-mapping>
<class
name="hibernate3test.dal.Cloumn"
table="cloumn"
>
<id name="cid" type="java.lang.String" column="c_id" >
//uuid.hex生成方式
<generator class="uuid.hex" />
</id>
<property name="u_id" type="java.lang.String" column="u_id" />
<property name="cname" type="java.lang.String" column="c_name" />
<property name="csort" type="java.lang.Integer" column="c_sort" />
<property name="cbeizhu" type="java.lang.String" column="c_beizhu" />

</class>
</hibernate-mapping>
spring配置文件
<bean id="test" class="hibernate3test.dal.dal">
<property name="sessionFactory"><ref local="sessionFactory"/></property>
</bean>
vo

public class Cloumn implements Serializable
{

private String cid;
private String u_id;
private String cname;
private Integer csort;
private String cbeizhu;

public Cloumn()
{
}
//geter setter
dao 代码
package hibernate3test.dal;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;


public class dal extends HibernateDaoSupport
{

public dal()
{
}
public void addCloumn()

{
Cloumn cc = new Cloumn();
cc.setU_id("297ebd930b46197a");
cc.setCname("测试添加拦目1");
cc.setCbeizhu("备注");
cc.setCsort(1);
this.getHibernateTemplate().save(cc);
}
测试
public static void main(String args[])

{
//加载spring配置文件
Resource rs=new ClassPathResource("appcontext.xml");
BeanFactory factory=new XmlBeanFactory(rs);
//得到dal
dal dao=(dal)factory.getBean("test");
//添加
dao.addCloumn();
//第二次再次添加就报错..??
//dao.addCloumn();
}
怎么会这样,第一次可以添加进数据库,第二次再调用dao.addCloumn()就报错?
这样做应该是没有问题的啊??
表结构










2.配置文件











//uuid.hex生成方式










spring配置文件




vo














dao 代码





















测试














怎么会这样,第一次可以添加进数据库,第二次再调用dao.addCloumn()就报错?
这样做应该是没有问题的啊??
注:
我单独用hibernate测试没有问题,加上spring 问题就来了。。
以下是hibernate测试代码(通过)
//得到session
public Session getSession()
{
try
{
Configuration cfg = new Configuration().configure();
SessionFactory sf=cfg.buildSessionFactory();
return sf.openSession();
}
catch(Exception ee)
{
log.error("error:"+ee.getMessage());
}
return null;
}
//添加的方法
public void addCloumn()
{
Cloumn cc = new Cloumn();
cc.setU_id("297ebd930b46197a");
cc.setCname("测试添家拦目1");
cc.setCbeizhu("备注");
cc.setCsort(1);
Session ss=this.getSession();
ss.save(cc);
ss.flush();
ss.close();
}
public static void main(String[] args) {
dao test = new dao();
//添加
test.addCloumn();
再次添加
test.addCloumn();
}
这样没有问题。。
加了spring就有问题。
以下是hibernate测试代码(通过)
//得到session
public Session getSession()
{
try
{
Configuration cfg = new Configuration().configure();
SessionFactory sf=cfg.buildSessionFactory();
return sf.openSession();
}
catch(Exception ee)
{
log.error("error:"+ee.getMessage());
}
return null;
}
//添加的方法
public void addCloumn()
{
Cloumn cc = new Cloumn();
cc.setU_id("297ebd930b46197a");
cc.setCname("测试添家拦目1");
cc.setCbeizhu("备注");
cc.setCsort(1);
Session ss=this.getSession();
ss.save(cc);
ss.flush();
ss.close();
}
public static void main(String[] args) {
dao test = new dao();
//添加
test.addCloumn();
再次添加
test.addCloumn();
}
这样没有问题。。
加了spring就有问题。