相信不是很难,写得多了点,有没有用的都写了。自己真的搞不懂了。菜鸟还望大家帮帮忙!谢谢。--------------------------------------------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
<?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
解决方案 »
- AOP到底是什么,能举例说明一下吗?
- 求救Hibernate中的HQL EDITOR配置问题
- 关于JTree节点删除一个疑问!期待完美解答!
- 哪位大侠知道怎么让swt的一个Composite变成透明的?急!
- BES VisiBroker Edition 6.5 中如何配置GateKeeper ?[解决问题100分]
- 小弟很急!!!!!!!!!!!!!
- 包使用编译出错向高手请教
- 急问!关于jdbc访问数据库!
- 请问哪里有免费的jrun下载?
- 强烈推荐:http://www.flashline.com ,难到国内就不能建个这样的平台吗?
- 将一个汉字转换为平假名映射表!
- 请大学帮忙解决软设中的几道题
java:comp/env/jdbc/mysql
</property> 路径配置有问题吧
java:comp/env/jdbc/mysql
</property> 路径配置有问题吧
<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>
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"/>
如果没有,应该是你没有配置数据源,如果有的话,那么你就是在web.xml里面把这个数据源加载近来这个资源
<resource-ref>
<description>jdbc/myhibernate</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> 这样hibernate才能引用这个资源.
虽然写的是你这个好像不是用的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"/>不知道是不是有错?
<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是干吗的是不是可以随便设置?
C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib
"C:\Program Files\Apache Software Foundation\Tomcat 5.5\"-----为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
你是怎么启动程序的呢?怎么运行class Test的呢?
是不是在命令提示行用java Test运行的啊?或者在Eclipse里面Run as Java Application的啊?
后者,在Eclipse里面Run as Java Application
是这个的问题吗?我的问题可能很白痴,还是希望多指教一下!
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>
吧