能顯示sql語(yǔ)句,沒(méi)有報(bào)錯(cuò),但是MySQL里沒(méi)有表?還有,slf4j是必須的嗎?
<!--?引入外部屬性文件jdbc.properties?--> ???<context:property-placeholder?location="classpath:jdbc.properties"/> ??? ???<!--?配置c3p0連接池?--> ???<bean?id="dataSource"?class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property?name="driverClass"?value="${jdbc.driverClass}"></property> <property?name="jdbcUrl"?value="${jdbc.url}"></property> <property?name="user"?value="${jdbc.username}"></property> <property?name="password"?value="${jdbc.password}"></property> ???</bean> ??? ???<!--?配置hibernate相關(guān)屬性?--> ???<bean?id="sessionFactory"?class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> ??? <!--?注入連接池?--> ??? <property?name="dataSource"?ref="dataSource"/> ??? ??? <!--?配置hibernate屬性?--> ??? <property?name="hibernateProperties"> ??? <props> ??? <prop?key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> ??? <prop?key="hibernate.show_sql">true</prop> ??? <prop?key="hibernate.format_sql">true</prop> ??? <prop?key="hibernate.hbm2ddl.auto">update</prop> ??? </props> ??? </property> ??? ??? <!--?加載hibernate中的映射文件?--> ??? <property?name="mappingResources"> ??? <list> ??? <value>ssh/domain/Product.hbm.xml</value> ??? </list> ??? </property> ??? ???</bean> ??? ???<!--?配置dao層的類(lèi)?--> ???<bean?id="productDao"?class="ssh.dao.ProductDao"> ??? ???</bean>? ??? ???<!--?配置service層的類(lèi)?--> ???<bean?id="productService"?class="ssh.service.ProductService"> ??? <property?name="productDao"?ref="productDao"></property> ???</bean> ??? ???<!--?配置action層的類(lèi)?--> ???<!--?由于action是多例的,而spring是單例,需要添加scope="prototype"?--> ???<bean?id="productAction"?class="ssh.action.ProductAction"?scope="prototype"> ??? <property?name="productService"?ref="productService"></property> ???</bean>
<hibernate-mapping> <class?name="ssh.domain.Product"?table="product"> <id?name="pid"?column="pid"> <generator?class="native"/> </id> <property?name="pname"?column="pname"?length="20"/> <property?name="price"?column="price"/> </class> </hibernate-mapping>
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssh
jdbc.username=root
jdbc.password=21henearkrxnrn!@#$
加上slf4j的api和log4j-slf4j,就會(huì)報(bào)錯(cuò):
Failed to instantiate SLF4J LoggerFactory
Reported exception:
java.lang.NoClassDefFoundError: org/apache/log4j/Level
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412)
at com.mchange.v2.log.slf4j.Slf4jMLog.<init>(Slf4jMLog.java:68)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
...
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Level
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1275)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1109)
...
嚴(yán)重: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/apache/log4j/Level
...
Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Level
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412)
at com.mchange.v2.log.slf4j.Slf4jMLog.<init>(Slf4jMLog.java:68)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
...
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Level
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1275)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1109)
...
嚴(yán)重: Exception sending context initialized event to listener instance of class [org.springframework.web.context.ContextLoaderListener]
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/apache/log4j/Level
...
2017-08-21
你的MySQL數(shù)據(jù)庫(kù)是不是5.0以上的版本,是的話要把方言的設(shè)置改成org.hibernate.dialect.MySQL5Dialect,就是在原來(lái)的那個(gè)上面加個(gè)"5"。
2017-07-13
第二個(gè)問(wèn)題解決了,slf4j-api和log4j-slf4j是沖突的!