资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
eclipse下配置下配置hibernate用用datasource连接数据库的问题连接数据库的问题精彩对话:甲:我把 hibernate.cfg.xml 文件内容帖出来给大家看看:“java:comp/env/jdbc/oradb“org.hibernate.connection.DatasourceConnect ionProvider org.hibernate.dialect.Oracle9Dialecttrue运行时包错如下: log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment). log4j:WARN Please initialize the log4j system properly. org.hibernate.HibernateException: Could not find datasourceat org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceCo nnectionProvider.java:56)at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(Con nectionProviderFactory.java:124)at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(Con nectionProviderFactory.java:56)at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:4 14)at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)at hibernate.demo01.PersonOperate.(PersonOperate.java:21)at hibernate.demo01.PersonTest.main(PersonTest.java:17) Caused by: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initialat javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:640)at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:280)at javax.naming.InitialContext.lookup(InitialContext.java:347)at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceCo nnectionProvider.java:52). 8 more Exception in thread “main“甲:Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial 这句话还要我配置个什么文件? 哪位老大能给解决下?乙:Could not find datasource 你 datasource 配好了吗?甲:ource 配好了的,偶都测试过可以用的。 javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial 关键是这句话,到底还需要指定个什么映射?乙:你在你的 main 里面怎么可能得到那个 datasource 呢 你的 datasource 怎么建的甲:就是配的 server.xml 和 web.xml。难道还要单独写个去 datasuorce 的类么? 楼上的说说具体怎么要怎么配?乙:你在运行什么东西的出错?甲:操作定义类: package hibernate.demo01;import java.util.Iterator; import java.util.List; import org.hibernate.*; import org.hibernate.cfg.Configuration; /* * 具体操作 Hibernate 的类: * 增加、删除、修改、按 ID 查询、模糊查询、查询全部操作 * */ public class PersonOperate / 在 Hibernate 中,所有的操作都是通过 Session 完成/ 此 Session 不同于 JSP 的 Sessionprivate Session session = null ; / 在构造方法之中实例化 session 对象public PersonOperate()/ 找到 Hibernate 配置Configuration config = new Configuration().configure() ;/ 从配置中取出 SessionFactorySessionFactory factory = config.buildSessionFactory() ;/ 从 SessionFactory 中取出一个 Sessionthis.session = factory.openSession() ;/ 所有的操作都是通过 session 进行的/ 向数据库中增加数据public void insert(Person p)/ 开始事务Transaction tran = this.session.beginTransaction() ;/ 执行语句this.session.save(p) ;/ 提交事务tran.commit() ;/ 关闭 Sessionthis.session.close() ;/ 修改public void update(Person p)/ 开始事务Transaction tran = this.session.beginTransaction() ;/ 执行语句this.session.update(p) ;/ 提交事务tran.commit() ;this.session.close();/ 按 ID 查询:推荐使用 HQL 是 Hibernate 官方推荐的查询语言public Person queryById(String id)Person p = null ;/ 使用 Hibernate 查询语言String hql = “FROM Person as p WHERE p.id=?“ ;/ 通过 Query 接口查询Query q = this.session.createQuery(hql) ;q.setString(0,id) ;List l = q.list() ;Iterator iter = l.iterator() ;if(iter.hasNext()p = (Person)iter.next() ;this.session.close();return p ;/ 删除数据/ Hibernate2、Hibernate 3 通用的删除/ 使用此方法删除数据之前,必须先查找到数据对象,性能呢?public void delete(Person p)Transaction tran = this.session.beginTransaction() ;/ 执行语句this.session.delete(p) ;/ 提交事务tran.commit() ;this.session.close();/ 在 Hibernate 3 之中根据 HQL 中的语句进行了修改,增加了删除指令public void delete(String id)String hql = “DELETE Person WHERE id=?“ ;Query q = this.session.createQuery(hql) ;/ 把参数设置q.setString(0,id) ;/ 执行更新语句q.executeUpdate() ;/ 进行事务处理this.session.beginTransaction().commit() ;this.session.close();/ 查询全部数据,写 HQLpublic List queryAll()List l = null ;String hql = “FROM Person as p“ ;Query q = this.session.createQuery(hql) ;l = q.list() ;this.session.close(); return l ;/ 模糊查询public List queryByLike(String cond)List l = null ;String hql = “FROM Person as p WHERE p.name like ?“ ;Query q = this.session.createQuery(hql) ;q.setString(0,“%“+cond+“%“ ;l = q.list() ;this.session.close();return l ; 启动运行类: package hibernate.demo01;public class PersonTest /* param args*/public static void main(String args) / TODO Auto-generated method stubPerson p = new Person();/p.setId(“11“; p.setName(“你好“;p.setPassword(“123354“;p.setSex(“男“;p.setEmail(“123
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号