切换数据库的小经历

切换数据库的历程

原因:开始说好用mysql的,后来部署工程的时候换了一个人,因此变成了sql server2005,因此得修改程序

问题:数据库变换之后,dao层使用了mysql相关的语句以及hibernate配置文件还是使用的mysql的配置。

解决办法:
1.使用了分页功能,因为涉及到统计表的查询,因此原dao里面写的是sql = sql + " LIMIT " + start + " , " + pageSize; 使用的是mysql特定的语句,用sql server2005之后需要修改这个语句,修改如下:
sql="SELECT * ,ROW_NUMBER() Over(order by id DESC) as rowNum FROM ( "+sql+" ) as myTable ";
sql="SELECT * FROM ( "+sql+" ) as t where rowNum between "+start+" and "+(start+pageSize);
2.再修改hibernate的配置文件,即:hibernate.cfg.xml,最初修改为如下所示:
<property name="dialect">
org.hibernate.dialect.SQLServerDialect
</property>
<property name="connection.url">jdbc:microsoft:sqlserver://192.168.0.251:1433;DatabaseName=stlog</property>
<property name="connection.username">ad</property>
<property name="connection.password">123</property>
<property name="connection.driver_class">
com.microsoft.jdbc.sqlserver.SQLServerDriver
</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
3.修改hibernate配置文件之后运行程序,出现TUser.hbm.xml和数据库映射不了,提示stlog.t_user不存在,辗转分析之后才知道原来TUser.hbm.xml中<class name="domain.TUser" table="t_user" catalog="stlog">是这样,需要改为<class name="domain.TUser" table="t_user" schema="dbo" catalog="stlog">这样,增加了schema="dbo"。


4.修改为这样出Can't start a cloned connection while in manual transaction mode.错误,因此参照网上把url修改为jdbc:microsoft:sqlserver://192.168.0.251:1433;DatabaseName=stlog;SelectMethod=Cursor
参考:http://blog.csdn.net/ivan_zhang_blog/archive/2007/04/20/1572038.aspx

5.奇怪的是这一次出"[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 1 (""): 数据类型 0x38 未知。"这个错误。最后没有办法,参考了一下其它的工程的链接方法,最后修改为:
<property name="myeclipse.connection.profile">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>
<property name="connection.url">jdbc:jtds:sqlserver://localhost:1433;DatabaseName=stlog;SelectMethod=Cursor</property>
<property name="connection.username">mobile</property>
<property name="connection.password">Woncore!23</property>
<property name="connection.driver_class">
net.sourceforge.jtds.jdbc.Driver
</property>
使用了jtds-1.2.jar包。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值