因为经常会问到这样的问题,说是ejs构架中切换一下数据库就用不起了,其实这是没有用对,ejs构架持久层使用的JPA,这是跨数据库的,出现问题主要原因是没有把配置文件改对。 在db.properties中进行数据库配置,基本内容如下: database.database=MYSQL public static final Database DEFAULT; static 因此,SQL Server数据库对应的常量应该是SQL_SERVER,有一个下划线,注意别丢了。否则是跑不起来的。
database.driverClassName=org.gjt.mm.mysql.Driver
database.url=jdbc:mysql://localhost:3306/oa?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf8&autoReconnect=true
database.username=root
database.password=admin
database.show_sql=true
每一行是什么意思这时丈不一一解说了。最为关键的是第一行,database.database这一属性用来指定数据库的类型。这个常量是由Spring的JPA支持中定义的。MYSQL表示使用的是MYSQL数据库,那么使用其它的数据库应该怎么设置呢?比如连接到SQL Server是不是就把MYSQL改成SQLSERVER就行了?因为SQLSERVER不是Spring定义的常量,所以肯定不行了。那么是什么呢?这个数据库常量我是记不住的。下面我贴出定义这些常量的原代码,要的时候大家直接来这里拷就行了。内容大致如下:
public static final Database DB2;
public static final Database HSQL;
public static final Database INFORMIX;
public static final Database MYSQL;
public static final Database ORACLE;
public static final Database POSTGRESQL;
public static final Database SQL_SERVER;
public static final Database SYBASE;
private static final Database $VALUES[];
{
DEFAULT = new Database("DEFAULT", 0);
DB2 = new Database("DB2", 1);
HSQL = new Database("HSQL", 2);
INFORMIX = new Database("INFORMIX", 3);
MYSQL = new Database("MYSQL", 4);
ORACLE = new Database("ORACLE", 5);
POSTGRESQL = new Database("POSTGRESQL", 6);
SQL_SERVER = new Database("SQL_SERVER", 7);
SYBASE = new Database("SYBASE", 8);
$VALUES = (new Database[] {
DEFAULT, DB2, HSQL, INFORMIX, MYSQL, ORACLE, POSTGRESQL, SQL_SERVER, SYBASE
});
}