今天帮网友做程序,把我以前的工程给他了,他自己改了,我以前用的是mysql现在他改成sql server就遇到了这个问题 ,后来才发现这是由于用了工具自动生成*.hbm.xml文件 而发生的错误, 一开始你的程序是好的,但是在你换了台机器,访问的数据库有变化时(也许用到里面的表都没有变动),可能就会出现 org.hibernate.exception.SQLGrammarException:Could not execute JDBC batch update的问题解决办法是把*.hbm.xml文件的 schema=" " 改为现在对应的用户 <hibernate-mapping> <class name="com.cn.hibernate.dao.Reg" table="REG" schema="sc"> <id name="rid" column="RID" type="long"> <generator class="increment" /> 其实就是要重新生成一下那個*.hbm.xml文件,然后把 <class name="com.cptw.login.User" table="USER" schema="CIMLIBA" catalog="S6504BEA">中的catalog就會生成個新的,如果以后再换就再重新生成一下这个编码,但是查了查文档有的时候映射文件是自己写的,没写catalog,也解决了同样问题。