↵
下面是我在把mysql数据库转换为sqlserver数据库时候遇到过的一些错,踩过的坑,把它总结下来防止以后再出错。
报错 1:
com.microsoft.sqlserver.jdbc.SQLServerException: 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'user_student'中的标识列指定显式值。
出错原因:
当mysql数据库转换为sqlserver数据库时,如果第一个id设置为自动递增,那么
String sql = "insert into s_class values(null,?,?)";这种插入就直接回导致这个错误。
解决:将sql语句改为:String sql = "insert into s_class values(?,?);改成这样,插入语句才不会报错,
其实标题那句话错误的意思就是这样,如果已经设置为自动递增的字段,在sqlserver中是不允许,为这个字段设置显式值
报错 2:
Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 关键字 'user' 附近有语法错误
出错原因:sql Server中user是关键字,因此报错
解决:在写查询语句的时候要在user上加[ ]
例如:select * from [user] from where id=2.另外order也是关键字 ,建议表名射程其他的词防止报错。
报错 3:
java.lang.Exception: Method all should have no parameters
出错原因:做测试的时候,@Test带了参数,
eg:public User findById(int id) { }解决:去掉参数,eg:public User findById() { }