以下操作是在Junit测试中完成的
1.新建一个工具类,用来获得SessionFactory和 session,参考代码:
工具类HibernateSessionFactory
2.在 Hibernate中使用SQL进行新增数据,需要注意的是设置参数的值,索引是从0开始的(修改和删除也是一样的),示例代码:
//Hibernate使用sql新增
@Test
public void testInsert() throws ParseException{
Session session=HibernateSessionFactory.getSession();
Transaction transaction=session.getTransaction();
transaction.begin();
String sql="insert into user (username,password,sex,createtime,powerid) " +
"values(?,?,?,?,?)";
//根据sql创建SQLQuery
SQLQuery query=session.createSQLQuery(sql).addEntity(User.class);
query.setString(0, "蝴蝶忍")
.setString(1, "123")
.setBoolean(2, true)
.setDate(3, new Date())
.setInteger(4, 1);
//执行新增
int r=query.executeUpdate();
if(r>0){
System.out.println("新增成功");
}else{
System.out.println("新增失败");
}
transaction.commit();
session.close();
}
运行结果截图:
2.Hibernate使用SQL进行修改数据,示例代码:
//Hibernate使用sql修改
@Test
public void testUpdate(){
Session session=HibernateSessionFactory.getSession();
Transaction transaction=session.getTransaction();
transaction.begin();
String sql="update user set username=? where userid=?";
//根据sql创建SQLQuery
SQLQuery query=session.createSQLQuery(sql).addEntity(User.class);
query.setString(0, "富冈义勇")
.setInteger(1, 39);
//执行修改
int r=query.executeUpdate();
if(r>0){
System.out.println("修改成功");
}else{
System.out.println("修改失败");
}
transaction.commit();
session.close();
}
运行结果截图:
3.Hibernate使用SQL进行删除数据,示例代码:
//Hibernate使用sql删除
@Test
public void testDelete(){
Session session=HibernateSessionFactory.getSession();
Transaction transaction=session.getTransaction();
transaction.begin();
String sql="delete from user where userid=?";
//根据sql创建SQLQuery
SQLQuery query=session.createSQLQuery(sql).addEntity(User.class);
query.setInteger(0, 39);
//执行修改
int r=query.executeUpdate();
if(r>0){
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}
transaction.commit();
session.close();
}
运行结果截图,id为39的数据已经删除: