菜鸟初学。eclipse中hibernate配置问题。困扰我一天了。各位高人帮忙看看吧!

安迪 2008-10-14 04:35:44
相信不是很难,写得多了点,有没有用的都写了。自己真的搞不懂了。菜鸟还望大家帮帮忙!谢谢。

--------------------------------------------hibernate.cfg.xml(START)----------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.datasource">
java:comp/env/jdbc/mysql
</property>
<property name="hibernate.connection.provider_class">
org.hibernate.connection.DatasourceConnectionProvider
</property>

<property name="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</property>
</session-factory>
</hibernate-configuration>
--------------------------------------------hibernate.cfg.xml(END)----------------------------------------
补充:我的jndi没有问题。因为可以通过web.xml配置,用页面连接。完全测试过。

----------------------------------------------------java代码(START)----------------------------------------
public class Test {
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration().configure();
SessionFactory sf = conf.buildSessionFactory();
Session sess = sf.openSession();
System.out.println(sess);
Transaction tx = sess.beginTransaction();
Admin n = new Admin();
n.setAdPass("2");
n.setAdName("3");
sess.save(n);
tx.commit();
sess.close();
}
}
----------------------------------------------------java代码(END)----------------------------------------

以下是错误提示信息:

严重: Could not find datasource: java:comp/env/jdbc/mysql
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
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:284)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:75)
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:137)
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:79)
at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:448)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:89)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2101)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1325)
at test.Test.main(Test.java:19)
Exception in thread "main" org.hibernate.HibernateException: Could not find datasource
at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:79)
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:137)
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:79)
at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:448)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:89)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2101)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1325)
at test.Test.main(Test.java:19)
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.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:284)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:75)
... 7 more

...全文
388 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
安迪 2008-10-16
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 z_lping 的回复:]
你的Tomcat跟这个Test运行在两个不同的JVM Runtime里,数据源跟Tomcat在一起,你的Test是找不到的。

你可以把Test改成一个Servlet,然后发布到Tomcat里面测试,就可以了。

再问一句,你要用Tomcat, Hibernate来做什么啊?
[/Quote]

哦,我只是自己学习使用!这样的搭配是不是不太好呢?
ri881226 2008-10-16
  • 打赏
  • 举报
回复
<Resource
name="jdbc/mysql"
type="javax.sql.DataSource"
password="andymu"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
username="andymu"
url="jdbc:mysql://localhost:3306/test"
maxActive="4"/>
是不是name错了,应该和
<property name="hibernate.connection.datasource">
java:comp/env/jdbc/mysql
</property>
z_lping 2008-10-16
  • 打赏
  • 举报
回复
你的Tomcat跟这个Test运行在两个不同的JVM Runtime里,数据源跟Tomcat在一起,你的Test是找不到的。

你可以把Test改成一个Servlet,然后发布到Tomcat里面测试,就可以了。

再问一句,你要用Tomcat, Hibernate来做什么啊?
安迪 2008-10-16
  • 打赏
  • 举报
回复
这个启动有什么要求吗?
安迪 2008-10-16
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 z_lping 的回复:]
你的数据源在Tomcat里面,没有问题。
你是怎么启动程序的呢?怎么运行class Test的呢?
是不是在命令提示行用java Test运行的啊?或者在Eclipse里面Run as Java Application的啊?
[/Quote]

后者,在Eclipse里面Run as Java Application
是这个的问题吗?我的问题可能很白痴,还是希望多指教一下!
安迪 2008-10-15
  • 打赏
  • 举报
回复
jndi也是这么配置吗?
cdm0881 2008-10-15
  • 打赏
  • 举报
回复
数据库配置方面不对......

参考:

<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1/hibernate_simple</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<mapping resource="com/cdm/hibernate/User.hbm.xml"/>

</session-factory>
</hibernate-configuration>
java__king 2008-10-15
  • 打赏
  • 举报
回复
关注.
安迪 2008-10-15
  • 打赏
  • 举报
回复
上去,这简单的问题怎么没来回答呢?
z_lping 2008-10-15
  • 打赏
  • 举报
回复
你的数据源在Tomcat里面,没有问题。
你是怎么启动程序的呢?怎么运行class Test的呢?
是不是在命令提示行用java Test运行的啊?或者在Eclipse里面Run as Java Application的啊?
安迪 2008-10-15
  • 打赏
  • 举报
回复
帮帮忙吧。从昨天到今天都解决啦~
安迪 2008-10-15
  • 打赏
  • 举报
回复
启动tomcat的时候还报了个错误:


信息: ExtensionValidator[/WebTest1]: Failure to find 4 required extension(s).
2008-10-15 17:11:52 org.apache.catalina.core.StandardContext start
严重: Error getConfigured
2008-10-15 17:11:52 org.apache.catalina.core.StandardContext start
严重: Context [/WebTest1] startup failed due to previous errors
2008-10-15 17:11:52 org.apache.catalina.core.StandardContext stop
信息: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/WebTest1] has not been started
安迪 2008-10-15
  • 打赏
  • 举报
回复
找了很多了。这两天天找。我也就奇怪了别人的写法好用。我的就不好用!
skyhits1921 2008-10-15
  • 打赏
  • 举报
回复
那就不知道啦,我就是用的这个方法。
beckhamcat1 2008-10-15
  • 打赏
  • 举报
回复
网上那么多代码干吗不借鉴一下呢,LZ注意学习方法
安迪 2008-10-15
  • 打赏
  • 举报
回复
看来是不行!希望能说明白吧!
安迪 2008-10-15
  • 打赏
  • 举报
回复
弄进去了。我放在了这个路径下:
C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib
"C:\Program Files\Apache Software Foundation\Tomcat 5.5\"-----为tomcat安装路径
发个图片看能不能看到:
yhzhw2121 2008-10-15
  • 打赏
  • 举报
回复
mysql的jar文件弄进去没?
安迪 2008-10-15
  • 打赏
  • 举报
回复
而且更让我觉的无奈的是,我的web.xml里边也同样的你说的那段配置:
<resource-ref>
<description>MYSQL</description>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>


这个配置中的description是干吗的是不是可以随便设置?
安迪 2008-10-15
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 skyhits1921 的回复:]
你看一下 tomcat下中的server.xml这个文件,有没有如下代码
XML code<Resource
name="jdbc/mysql"
type="javax.sql.DataSource"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
password="root"
maxIdle="2"
maxWait="5000"
username="root"
url="jdbc:microsoft:sqlserver://localhost:3069;databasename=test"
maxActive="4"/>


如果…
[/Quote]

虽然写的是你这个好像不是用的mysql。但是我用的是。也的确有关于mysql的配置的内容:
<Resource
name="jdbc/mysql"
type="javax.sql.DataSource"
password="andymu"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
username="andymu"
url="jdbc:mysql://localhost:3306/test"
maxActive="4"/>

不知道是不是有错?
加载更多回复(10)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧