主题 : 3.1.1 更改数据库问题
级别: 秀才
UID: 15157
积分:53 加为好友
威望: 0 精华: 0
主题:2 回复:29
注册时间:2011-01-21
在线时长:0
1#   发表于:2011-08-25 19:19:10  IP:124.180.*.*
这个软件 很久以前看过。一直很忙。最近开始研究了。
首先安装。

http://bbs.jeecms.com/azsy/6554.jhtml?res=r%2Fcms%2Fwww%2Fblue&location=http%3A%2F%2Fbbs.jeecms.com%2Fpost%2Fo_save.jspx&locale=zh_CN&_start_time=1314269412546&resSys=%2Fr%2Fcms

这个写的很好。

但是我看官方给的说法。必须要先运行才可以吗?
我电脑里面没有mysql  但是我有mssql 
我也不想装mysql 
目的:可以直接更改驱动改成mssql 的吗? 如何操作。

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://DB_HOST:DB_PORT/DB_NAME?characterEncoding=UTF-8
jdbc.username=DB_USER
jdbc.password=DB_PASSWORD
只改这几句话可以吗。
 我想法是 DB_USER和DB_PASSWORD 在安装界面是提取的,我可以不用改。只需要改url 和driverClassName 就可以了吧。
源代码:jdbc.driverClassName=com.mysql.jdbc.Driver
更改后:jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
源代码:jdbc.url=jdbc:mysql://DB_HOST:DB_PORT/DB_NAME?characterEncoding=UTF-8
更改后:jdbc.url=jdbc:sqlserver://DB_HOST:DB_PORT;databasename=DB_NAME


准备工作:创建一个数据库,导入sqljdbc.jar,tomcat-dbcp.jar。
然后安装页面输入相应的数据是不是就OK 了。
求指教!
有问题,找民警才不管用!
级别: 秀才
UID: 15157
积分:53 加为好友
威望: 0 精华: 0
主题:2 回复:29
注册时间:2011-01-21
在线时长:0
2#   发表于:2011-08-25 19:23:03  IP:124.180.*.*
这是报的错误:
严重: Servlet.service() for servlet Install threw exception
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)
at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2472)
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:597)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1076)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2142)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:773)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:352)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:207)
at com.jeecms.cms.Install.getConn(Install.java:43)
at com.jeecms.cms.Install.changeDbCharset(Install.java:80)
at com.jeecms.cms.InstallServlet.doPost(InstallServlet.java:41)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
有问题,找民警才不管用!
级别: 秀才
UID: 15157
积分:53 加为好友
威望: 0 精华: 0
主题:2 回复:29
注册时间:2011-01-21
在线时长:0
3#   发表于:2011-08-25 19:29:38  IP:124.180.*.*
继续记录也让有问题的人能找到答案:还有个地方
WEB-INF/congif/application-context.xml
源代码:hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
更改后:hibernate.dialect=org.hibernate.dialect.SQLServerDialect 
有问题,找民警才不管用!
级别: 秀才
UID: 15157
积分:53 加为好友
威望: 0 精华: 0
主题:2 回复:29
注册时间:2011-01-21
在线时长:0
4#   发表于:2011-08-25 19:39:26  IP:124.180.*.*
继续调试:
package com.jeecms.cms;

public static Connection getConn(String dbHost, String dbPort,
String dbName, String dbUser, String dbPassword) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Class.forName("com.mysql.jdbc.Driver").newInstance();
String connStr = "jdbc:mysql://" + dbHost + ":" + dbPort + "/" + dbName
+ "?user=" + dbUser + "&password=" + dbPassword
+ "&characterEncoding=utf8";
Connection conn = DriverManager.getConnection(connStr);
return conn;
}

更改:

public static Connection getConn(String dbHost, String dbPort,
String dbName, String dbUser, String dbPassword) throws Exception {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
String connStr = "jdbc:sqlserver://" + dbHost + ":" + dbPort + ";databasename=" + dbName;
Connection conn = DriverManager.getConnection(connStr);
return conn;
}
继续试验
有问题,找民警才不管用!
级别: 秀才
UID: 15157
积分:53 加为好友
威望: 0 精华: 0
主题:2 回复:29
注册时间:2011-01-21
在线时长:0
5#   发表于:2011-08-25 19:46:56  IP:124.180.*.*
有一句写错了。。

继续改:

public static Connection getConn(String dbHost, String dbPort,
String dbName, String dbUser, String dbPassword) throws Exception {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
String connStr = "jdbc:sqlserver://" + dbHost + ":" + dbPort + ";databasename=" + dbName;
Connection conn = DriverManager.getConnection(connStr,dbUser,dbPassword);
return conn;
}

这个是正确的。。
有问题,找民警才不管用!
级别: 秀才
UID: 15157
积分:53 加为好友
威望: 0 精华: 0
主题:2 回复:29
注册时间:2011-01-21
在线时长:0
6#   发表于:2011-08-25 19:53:02  IP:124.180.*.*
在Install.java
中还有一处:
public static void createDb(String dbHost, String dbPort, String dbName,
String dbUser, String dbPassword) throws Exception {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
String connStr = "jdbc:sqlserver://" + dbHost + ":" + dbPort + ";databasename=" + dbName;
Connection conn = DriverManager.getConnection(connStr,dbUser,dbPassword);
Statement stat = conn.createStatement();
String sql = "drop database if exists " + dbName;
stat.execute(sql);
sql = "create database " + dbName + " CHARACTER SET UTF8";
stat.execute(sql);
stat.close();
conn.close();
}
有问题,找民警才不管用!
级别: 秀才
UID: 15157
积分:53 加为好友
威望: 0 精华: 0
主题:2 回复:29
注册时间:2011-01-21
在线时长:0
7#   发表于:2011-08-25 20:01:19  IP:124.180.*.*
 剩下的就是sql 语句了。。。。。
改掉应该就OK 了
有问题,找民警才不管用!
级别: 秀才
UID: 15157
积分:53 加为好友
威望: 0 精华: 0
主题:2 回复:29
注册时间:2011-01-21
在线时长:0
8#   发表于:2011-08-25 20:01:48  IP:124.180.*.*
 有更好的办法大家来说说。。
有问题,找民警才不管用!
级别: 秀才
UID: 15157
积分:53 加为好友
威望: 0 精华: 0
主题:2 回复:29
注册时间:2011-01-21
在线时长:0
9#   发表于:2011-08-25 20:04:17  IP:124.180.*.*


WebRoot/install/db下jeecms-db-3.1.1-final.sql 
找个工具 格式化一下。。不然 mssql 报错的。。

我也不知道我的办法对不对。。。

请斑竹。。大家 都来 发表一下看法。
有问题,找民警才不管用!
级别: 总版主
UID: 10736
积分:149787 加为好友
威望: 212 精华: 42
主题:297 回复:127674
注册时间:2010-09-08
在线时长:90.1
10#   发表于:2011-08-26 08:43:04  IP:59.245.*.*
有些链接,语法都得改,并不是非常容易
路漫漫其修远兮,吾将上下而求索!
1 2 > >| 共2页