日期:2014-05-20  浏览次数:20924 次

hibernate连接Mysql数据库为什么可以更新,查找和删除但是就不能插入数据
hibernate连接Mysql数据库为什么可以更新,查找和删除但是就不能插入数据
其他描述:
数据库表:
guestbook
 id int primary key
 username varchar(20)
 password varchar(20)

数据库guestbook的导出xml文件为:Guestbook.hbm.xml
<?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">
<!-- 
  Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
  <class name="com.ssh.guestbook.Guestbook" table="guestbook" catalog="test">
  <id name="id" type="java.lang.Integer">
  <column name="id" />
  <generator class="native" />
  </id>
  <property name="username" type="java.lang.String">
  <column name="username" />
  </property>
  <property name="password" type="java.lang.String">
  <column name="password" />
  </property>
  </class>
</hibernate-mapping>

对数据库的操作为:
Session session = HibernateSessionFactory.getSession();
Transaction t = session.beginTransaction();
List list = null;
Query q = null;
Guestbook gb = new Guestbook();

// 查询所有的记录
System.out.println("查询所有的记录");
q = session.createQuery("from Guestbook");
list = q.list();
System.out.println(list.size());
for (int i = 0; i <list.size(); i++) {
gb = (Guestbook) list.get(i);
System.out.println("id:" + gb.getId() + ",name:" + gb.getUsername()
+ ",password:" + gb.getPassword());
}
gb=null;
// 更新一条记录
System.out.println("更新一条记录");
gb = (Guestbook) session.get(Guestbook.class, new Integer(1));
if(gb!=null){
gb.setPassword("zwy");
t.begin();
session.saveOrUpdate(gb);
t.commit();
System.out.println("更新一条记录成功");
}

// 查询所有的记录
System.out.println("查询所有的记录");
q = session.createQuery("from Guestbook");
list = q.list();

for (int i = 0; i <list.size(); i++) {
gb = (Guestbook) list.get(i);
System.out.println("id:" + gb.getId() + ",name:" + gb.getUsername()
+ ",password:" + gb.getPassword());
}

//删除一条记录
System.out.println("删除一条记录");
gb=null;
gb=(Guestbook)session.get(Guestbook.class, new Integer(2));
if(gb!=null){
t.begin();
session.delete(gb);
t.commit();
}

// 查询所有的记录
System.out.println("查询所有的记录");
q = session.createQuery("from Guestbook ");
list = q.list();

for (int i = 0; i <list.size(); i++) {
gb = (Guestbook) list.get(i);
System.out.println("id:" + gb.getId() + ",name:" + gb.getUsername()
+ ",password:" + gb.getPassword());
}
session.close();
此操作的结果为:
查询所有的记录
Hibernate: select guestbook0_.id as id0_, guestbook0_.username as username0_, guestbook0_.password as password0_ from test.guestbook guestbook0_
2
id:1,name:zhou,password:zwy
id:2,name:sd,password:sd
更新一条记录
更新一条记录成功
查询所有的记录
Hibernate: select guestbook0_.id as id0_, guestbook0_.username as username0_, guestbook0_.password as password0_ from test.guestbook guestbook0_
id:1,name:zhou,password:zwy
id:2,name:sd,password:sd
删除一条记录