grails直接使用hibernate的ImprovedNamingStrategy,虽然说是个不错的选择,不过有时候我们的工作不会象框架设计者想的那么简单.作为一个ORM,提供可配置命名策略是必要的.不过在grails中,如果你不想修改grails源代码那么就只能使用hibernate的默认命名策略.这是一个非常糟糕的设计...因为在GrailsDomainBinder这个类中是这样定义命名策略的:private static final NamingStrategy namingStrategy = ImprovedNamingStrategy.INSTANCE;很郁闷的使用了硬编码,而不是象DataSource那样直接写到groovy文件中进行配置.
下面这段代码是从ApplicationDataSource.groovy中摘出来的,分别是mysql和sqlserver的连接方法
下面这段代码是从ApplicationDataSource.groovy中摘出来的,分别是mysql和sqlserver的连接方法
//for mysql
//设置数据库为utf-8,选择第二项
//charsetfilter为utf-8,groovy文件为ansi
//用非jdbc客户端连的时候需要先设置:SET NAMES 'gbk'
//相当于:SET character_set_client='utf8'
//SET character_set_connection='utf8'
//SET character_set_results='utf8'
boolean pooling = true
String dbCreate = "create-drop" // one of 'create', 'create-drop','update'
//String url = "jdbc:mysql://localhost/test"
String url = "jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf-8"
String driverClassName = "com.mysql.jdbc.Driver"
String username = "test"
String password = "test"
def dialect = MySQLDialect.class
/*
//for sql server
//设置sqlserver为简体中文
boolean pooling = true
String dbCreate = "create-drop" // one of 'create', 'create-drop','update'
String url = "jdbc:microsoft:sqlserver://127.0.0.1:1433"
String driverClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver"
String username = "test"
String password = "test"
def dialect = SQLServerDialect.class
*/