欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

grails的命名策略和数据库连接

程序员文章站 2022-03-14 13:36:20
...
grails直接使用hibernate的ImprovedNamingStrategy,虽然说是个不错的选择,不过有时候我们的工作不会象框架设计者想的那么简单.作为一个ORM,提供可配置命名策略是必要的.不过在grails中,如果你不想修改grails源代码那么就只能使用hibernate的默认命名策略.这是一个非常糟糕的设计...因为在GrailsDomainBinder这个类中是这样定义命名策略的:private static final NamingStrategy namingStrategy = ImprovedNamingStrategy.INSTANCE;很郁闷的使用了硬编码,而不是象DataSource那样直接写到groovy文件中进行配置.
下面这段代码是从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
*/