0 0

高手帮下:SSH整合mysql问题20

之前数据库是SQL2000的,用SSH整合后很完美,一点错误都没有,但因需要,将数据库的版本换成mysql后,错误来了

我就是将SPRING的配置文件修改了数据源,本以为这样就完了,确实大家想的改下驱动和URL就OK了,可不知道哪里出错了,任何增删改查都不能用了,错误如下:

Hibernate: select news0_.id as id, news0_.typeId as typeId4_, news0_.title as title4_, news0_.content as content4_, news0_.newtime as newtime4_, news0_.auth as auth4_, news0_.toup as toup4_ from company.dbo.News news0_ where typeId=1 limit ?

2009-11-12 16:25:08,750 WARN [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 1064, SQLState: 42000


2009-11-12 16:25:08,750 ERROR [org.hibernate.util.JDBCExceptionReporter] - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.News news0_ where typeId=1 limit 10' at line 1
org.hibernate.exception.SQLGrammarException: could not execute query


请大家帮下忙,我怀疑是数据库的版本问题,数据库是MySQL-server-community-5.0.87-0.rhel3.i386.rpm在linux的。。。。坐等
问题补充:
是支持的,HQL这个可以用当为sql2000的时候是top,mysql是limit,我在DAO的文件中用了

Query query = session.createQuery(hql);
query.setFirstResult(0);
query.setMaxResults(10);

这个不影响查询前10条记录,呵呵,不是这的问题,我确定
问题补充:
大家很,很感激你们的帮助,这是我的程序代码
/*这是hirbernate和Spring整合后的配置文件*
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
	<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName"
			value="com.mysql.jdbc.Driver">
		</property>
		<property name="url"
			value="jdbc:mysql://127.0.0.1:3306/company">
		</property>
		<property name="username" value="root"></property>
		<property name="password" value="123456"></property>
	</bean>
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<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>
			</props>
		</property>
		<property name="mappingResources">
			<list>
				<value>pojo/Admin.hbm.xml</value>
				<value>pojo/CateType.hbm.xml</value>
				<value>pojo/FishList.hbm.xml</value>
				<value>pojo/NewsType.hbm.xml</value>
				<value>pojo/News.hbm.xml</value></list>
		</property>
	</bean>




/**这是我pojo的映射文件,以前直接是sql2000映射后的,我现在直接拿来用
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="pojo.News" table="News" schema="dbo" catalog="company">
            <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="native" />
        	</id>
            <property name="typeId" type="java.lang.Integer" insert="false" update="false">
                <column name="typeId" />
            </property>
            <property name="title" type="java.lang.String">
                <column name="title" length="500" />
            </property>
            <property name="content" type="java.lang.String">
                <column name="content" length="4000" />
            </property>
            <property name="newtime" type="java.lang.String">
                <column name="newtime" length="50" />
            </property>
            <property name="auth" type="java.lang.String">
                <column name="auth" length="100" />
            </property>
            <property name="toup" type="java.lang.Integer">
                <column name="toup" />
            </property>
            
            <!-- 一个消息有一个类别 -->
            <many-to-one name="newsType" column="typeId" class="pojo.NewsType" lazy="false"></many-to-one>
    </class>
</hibernate-mapping>


问题补充:
哦,还有个问题,mysql中能使用nvrchar(4000)这个吗
DAO 
2009年11月12日 16:41

7个答案 按时间排序 按投票排序

0 0

采纳的答案

引用
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.News news0_ where typeId=1 limit 10' at line 1

引用
ews0_.toup as toup4_ from company.dbo.News news0_ where typeId=1 limit ?

根据异常信息和生成的sql语句判断,company.dbo.News有问题
mysql里面是没有这样的名字空间的,看看你的映射文件,可能是table映射写错了。
正常情况下应该是company.News

2009年11月12日 18:42
0 0

是否是数据类型的问题?我从mysql迁移到derby的时候也出现类似问题.还有规范的问题.mysql和derby映射出来的entity都不一样

2009年11月13日 14:11
0 0

或者你可以重新用MyEclipse生成映射文件,然后对比一样,会发现不同的

2009年11月13日 12:48
0 0

对,去掉 schema="dbo"试试。
mysql没有nvarchar类型,你可以看一下mysql参考手册,网上有

2009年11月13日 12:46
0 0

个人建议:

    去掉 schema="dbo" 试试。

2009年11月13日 12:30
0 0

一般不会遇见这种情况啊?
你既然数据源和驱动都换了
然后 SQL语句都出错,我想你看看你的hibernate配置问题把,JDBC错误应该是hibernate发出的错误语句`

2009年11月12日 21:25
0 0

我怎么记得hql不支持limit啊

2009年11月12日 17:02

相关推荐

    SSH整合遇到的问题及解决方案

    SSH(Secure Shell)是一种网络协议,用于在不安全...理解每个框架的核心概念,熟悉它们的配置和用法,以及具备良好的调试技巧,是解决整合问题的关键。同时,保持代码整洁、遵循最佳实践,可以降低出现问题的可能性。

    简单的SSH整合,用到MySql数据库,使用ajax和json

    **SSH整合** SSH是三个Java开发框架的缩写:Spring、Struts和Hibernate。这个组合在Web应用开发中被广泛使用,特别是在企业级项目中。它们分别负责不同的职责:Spring作为核心容器,管理对象和依赖注入;Struts处理...

    SSH+mysql框架整合

    SSH+MySQL框架整合是Web开发中常见的技术栈,它结合了Struts2、Spring和Hibernate三个框架,以及MySQL数据库,构建出高效、稳定的后端架构。这篇文章将深入探讨这些技术的整合过程及其核心概念。 首先,Struts2是...

    ssh整合所需要的jar包

    - `mysql-connector-java.jar`:MySQL驱动,用于连接MySQL数据库。 5. **整合步骤**: - 配置Struts2的`struts.xml`,声明Spring插件并指定Spring应用上下文配置文件。 - 在Spring的`applicationContext.xml`中...

    SSH框架整合源码和数据库(结合MySQL实现简单的用户登录)

    这个项目标题提及的是一个结合了MySQL数据库实现简单用户登录功能的SSH整合案例。下面我们将深入探讨SSH框架的核心原理以及在实际应用中的整合步骤。 **Struts框架**: Struts是基于MVC(Model-View-Controller)...

    SSH整合Jar包

    SSH整合在JavaWeb开发中是一项重要的技术组合,它包含了三个主要的开源框架:Spring、Struts和Hibernate。这些框架分别负责应用的业务逻辑管理、视图层控制和数据持久化。接下来,我们将深入探讨SSH整合的关键知识点...

    SSH整合jar包

    SSH整合jar包是一个集合了所有在Java开发中用于Spring、Struts和Hibernate(SSH)集成应用所需的库文件的压缩包。SSH是Java企业级开发中非常流行的一种框架组合,它能够帮助开发者快速构建高效、可维护的企业级Web...

    SSH整合和mysql集成jar下载即用

    4. **MySQL数据库**:MySQL是一种流行的开源关系型数据库管理系统,适用于小型到大型项目。在SSH整合中,MySQL是数据存储的地方,Hibernate通过JDBC(Java Database Connectivity)接口与MySQL进行通信。 5. **jar...

    SSH整合实例源码

    SSH整合是Java Web开发中的一个常见实践,它指的是Struts 2、Hibernate和Spring这三大框架的集成。这个"SSH整合实例源码"提供了一种实际应用这些框架的方法,帮助开发者理解如何在项目中有效地结合它们。以下是关于...

    ssh整合适合新手

    SSH整合通常指的是在服务器端配置SSH服务,并与前端应用如Spring框架进行集成,以实现远程管理和自动化运维。 对于SSH初学者来说,了解以下知识点至关重要: 1. **SSH基础**:理解SSH的基本原理,包括客户端和...

    ssh整合所需所有架包

    SSH整合是Java开发中一种常见的框架集成方式,它结合了Struts2、Spring和Hibernate三个开源框架,以实现高效、灵活的企业级应用开发。这里提到的"ssh整合所需所有架包"是一个包含这三个框架相应版本的集合,确保它们...

    WINDOWS+WAMP+PHP环境下稳定通过SSH访问Mysql

    举例:在本机windows服务器如何通过SSH稳定访问192.168.1.1上的Mysql数据库 1.打开putty 2.选择参数tunnels 设置Source port :3388 Destination : 192.168.1.1:3306 点击add 3.选择putty登录界面,选择ssh 输入...

    ssh整合例子及其他的实验

    2. **Struts SSH整合**:虽然Struts主要关注用户界面和业务逻辑,但在某些情况下,可能需要通过SSH进行后台操作。这可以通过集成第三方SSH库实现,编写Action来执行远程命令。 3. **Hibernate SSH整合**:Hibernate...

    SSH+MySQL整合用户信息实例

    在这个SSH+MySQL整合用户信息实例中,我们将深入探讨如何使用这三个框架来处理用户登录信息的管理。 首先,让我们了解SSH框架的核心组件: 1. **Struts2**:这是一个MVC(Model-View-Controller)框架,负责处理...

    ssh整合jar包

    这个"ssh整合jar包"包含了实现SSH整合所需的核心库文件。下面将详细阐述SSH框架及其整合中的关键知识点。 1. **Spring框架**:Spring是Java领域的一个全功能的开源应用框架,它的核心特性是依赖注入(Dependency ...

    ssh整合 jar包

    - mysql-connector-java-5.1.15-bin.jar:MySQL的JDBC驱动,用于连接MySQL数据库。 - spring-web-4.1.6.RELEASE.jar:Spring的Web模块,提供了Web相关的支持。 - javassist-3.18.1-GA.jar:Javassist库,...

    SSH整合驱动包 SSH整合驱动包

    SSH整合驱动包是一种在Java开发中用于实现Spring、Struts和Hibernate这三大框架集成的工具集合。SSH(Spring、Struts、Hibernate)是Java Web开发中的经典组合,它提供了全面的MVC(Model-View-Controller)架构支持...

    ssh+extjs+mysql整合

    在"ssh+extjs+mysql整合"中,我们将SSH框架与ExtJS前端技术和MySQL数据库结合起来,构建一个完整的Web应用。以下是对这个整合过程的详细说明: 1. **Spring**:Spring作为核心框架,负责管理应用程序的各个组件,...

    SSH整合购物车有上传浏览

    SSH整合购物车有上传浏览是将Secure Shell (SSH) 技术与Web应用程序结合,实现安全的文件上传和购物车功能的过程。SSH是一种网络协议,主要用于加密网络连接,确保数据在传输过程中的安全性。在电子商务网站中,SSH...

Global site tag (gtag.js) - Google Analytics