永发信息网

急需一个 Hibernate 连接 Oracle数据库 实现 增加数据的 代码,

答案:2  悬赏:60  手机版
解决时间 2021-01-28 14:13
  • 提问者网友:咪咪
  • 2021-01-27 16:42
完整的代码 以及数据库

发到 我邮箱 26000204@qq.com 简单实现 即可
最佳答案
  • 五星知识达人网友:污到你湿
  • 2021-01-27 17:04
你是说向oracle数据库里增加一条记录吗?如果是这样的话,代码如下:另外发送到你的邮箱里:
IBaseDao;

package com.accp.dao;

import org.hibernate.Session;

public interface IBaseDao {
public Session getSession();
public void closeSession();
}

BaseDao:
package com.accp.dao.impl;

import org.hibernate.HibernateException;
import org.hibernate.Session;

import com.accp.dao.IBaseDao;

public class BaseDao implements IBaseDao {
private Session session = null;
public Session getSession(){
//Session session = null;
try {
session = HibernateUtil.getSessionFactory().openSession();
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("getSession()方法出错...");
}
return session;
}

public void closeSession(){
//Session session = getSession();
if(null != session){
session.close();
}
}
}

HibernateUtil:
package com.accp.dao.impl;

import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {
private static Configuration configuration;
private static SessionFactory sessionFactory;
static{
try {
configuration = new Configuration();
configuration.configure();
sessionFactory = configuration.buildSessionFactory();
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public static Configuration getConfiguration(){
return configuration;
}

public static SessionFactory getSessionFactory(){
return sessionFactory;
}
}

ProductDaoImpl:
package com.accp.dao.impl;

import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.accp.dao.IProductDao;
import com.accp.models.Product;

public class ProductDaoImpl extends BaseDao implements IProductDao {

@Override
public boolean saveOrUpdate(Product product) {
// TODO Auto-generated method stub
boolean isSuccess = false;
Session session = null;
Transaction transaction = null;
try {
session = getSession();
transaction = session.beginTransaction();
transaction.begin();
session.saveOrUpdate(product);
transaction.commit();
isSuccess = true;
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
transaction.rollback();
System.out.println("saveOrUpdate(Product product)方法出错了...");
}finally{
closeSession();
}
return isSuccess;
}
}
一个小例子
全部回答
  • 1楼网友:等灯
  • 2021-01-27 18:04
hql:hibernate query language hql是完全面向对象的查询语言,因此可以支持继承和多态等特征。 hql查询依赖于query类,每个query实例对应一个查询对象,使用hql查询按 如下步骤进行: (1)获取hibernate session对象; (2)编写hql语句; (3)以hql语句作为参数,调用session的createquery方法创建查询对象; (4)如果hql语句包含参数,调用query的setxxx方法为参数赋值; (5)调用query对象的list等方法遍历查询结果。 查询示例: public class hqlquery { public static void main(string[] args) throws exception { hqlquery mgr = new hqlquery(); //调用查询方法 mgr.findpersons(); //调用第二个查询方法 mgr.findpersonbyhappendate(); hibernateutil.sessionfactory.close(); } //第一个查询方法 private void findpersons() { //获得hibernate session session sess = hibernateutil.currentsession(); //开始事务 transaction tx = sess.begintransaction(); //以hql语句创建query对象 //执行setstring方法为hql语句的参数赋值 //query调用list方法访问查询的全部实例 list p1 = sess.createquery("from person p where o.myevents.title = : eventtitle").setstring("eventtitle", "很普通事情").list(); //遍历查询的全部结果 for (iterator pit = p1.iterator(); pit.haxnext(); ) { person p = (person)pit.next(); system.out.println(p.getname()); } //提交事务 tx.commit(); hibernateutil.closesession(); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯