搜罗了很多资料,可是只是看到一个,但是还是没有调出来(也没有源码),后来自己试了试ok了。写出来共享一下。
1.实体类:
public class Strategy implements java.io.Serializable {
// Fields
private Integer id;
private String name;
private Integer age;
// Constructors
2.Strategy.hbm.xml 对应的表名是可以省略的,不过在hibernate的配置文件中要加一个东西! hibernate.hbm2ddl.auto
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.ccms.namingstrategy.Strategy" catalog="hejietest">
<id name="id" type="integer">
<column name="id" />
<generator class="increment" />
</id>
<property name="name" type="string">
<column name="name" />
</property>
<property name="age" type="integer">
<column name="age" />
</property>
</class>
</hibernate-mapping>
3.hibernate.cfg.xml 一定要加入<property name="hibernate.hbm2ddl.auto" >update</property>
<property name="hibernate.hbm2ddl.auto" >update</property>
<mapping resource="com/ccms/namingstrategy/Strategy.hbm.xml" />
4.MyNamingStrategy
package com.ccms.namingstrategy;
import java.util.Calendar;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.cfg.DefaultNamingStrategy;
public class MyNamingStrategy extends DefaultNamingStrategy {
private static Log log = LogFactory.getLog(MyNamingStrategy.class);
public static MyNamingStrategy INSTANCE = new MyNamingStrategy();
@Override
public String classToTableName(String className) {
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1;
String tableName = "strategy_"+year+"_"+(month<10?("0"+month):month);
log.info("过滤出来的表名:["+tableName+"]");
return tableName;
}
}
5.HibernateSessionFactory
修改这句
configuration.setNamingStrategy(MyNamingStrategy.INSTANCE).configure(configFile);
/**
其中configuration是
private static Configuration configuration = new Configuration();
*/
分享到:
相关推荐
- **NamingStrategy**: 控制JSON键的命名规则,如驼峰式或下划线分隔等。 **6. .NET Framework 4.5 支持** Newtonsoft.Json 4.5版本是专为.NET Framework 4.5设计的,它充分利用了.NET 4.5的新特性,如异步操作。...
1. **命名策略(NamingStrategy)**:Hibernate默认使用一种命名策略来转换实体类属性名到数据库列名。如果希望自定义这种映射规则,可以通过实现`NamingStrategy`接口来自定义命名策略。 2. **拦截器(Interceptor...
例如,可以创建一个`JsonSerializerSettings`实例,然后设置`NamingStrategy`属性来处理属性名的转换。以下是一个简单的例子,展示了如何使用`CamelCaseNamingStrategy`: ```csharp using NetJSON; using System....
接下来,我们需要指定代码生成的策略,包括命名策略(NamingStrategy)、实体字段策略(EntityColumnRuleConfig)、填充策略(TableFill)等: ```java // 配置策略 StrategyConfig strategy = new StrategyConfig...
在“随即点名java”项目中,可能会有多个类实现`NamingStrategy`接口,如`RandomNamingStrategy`用于随机选择学生,`AlphabeticalNamingStrategy`按照名字顺序进行点名。每个实现类会提供接口中定义的方法的具体实现...
8. **NamingStrategy**:NamingStrategy允许自定义数据库表名和列名的生成规则,以适应不同的命名规范或避免名称冲突。 总之,Hibernate2为Java开发者提供了一种强大的工具,将复杂的数据库操作转换为面向对象的API...
strategy.setColumnNaming(NamingStrategy.underline_to_camel); strategy.setEntityTableFieldAnnotationEnable(true); strategy.setInclude(new String[]{"your_table_name"}); // 需要生成的表名 new ...
strategy.setColumnNaming(NamingStrategy.underline_to_camel); // 列名转换策略 strategy.setEntityTableFieldAnnotationEnable(true); // 是否在实体类字段添加@TableField注解 strategy.setInclude(new ...
前言 1. 翻译说明 2. 版权声明 1. Hibernate入门 1.1. 前言 ...3.6. 实现NamingStrategy 3.7. XML配置文件 3.8. J2EE应用程序服务器的集成 3.8.1. 事务策略配置 3.8.2. JNDI绑定的SessionFactory
strategy.setNaming(NamingStrategy.underline_to_camel); // 表名转换策略 strategy.setTablePrefix("t_"); // 设置表前缀 strategy.setInclude(new String[]{"user"}); // 需要生成的表名,多个表名用逗号分隔 ...
这里,我们创建了一个`JsonSerializerSettings`实例,并设置了`NamingStrategy`为`CamelCaseNamingStrategy`,这将确保在序列化时属性名转换为驼峰格式。 3. 处理AJAX请求: 前端通常使用jQuery或其他类似的库...
mpg.setStrategy(new StrategyConfig().setNaming(NamingStrategy.underline_to_camel)); // 配置输出路径 mpg.setOutputDir("src/main/java"); // 执行生成 mpg.execute(); } } ``` 运行主程序,根据提示...
strategyConfig.setNaming(NamingStrategy.underline_to_camel); // 表名转换策略 strategyConfig.setInclude(new String[]{"your_table_name"}); // 需要生成的表 configBuilder.setStrategy(strategyConfig); ...
strategy.setNaming(NamingStrategy.underline_to_camel); // 表名生成策略 strategy.setInclude(new String[]{"your_table_name"}); // 需要生成的表名,多个用逗号分隔 // 执行生成 mpg.setGlobalConfig(gc);...
- `namingStrategy`:映射命名策略,通常用于生成映射的名字。 - `mappingRegistry`:映射注册表,存储映射信息。 - **命名策略**: - 如果映射已经配置了名字(如通过`@RequestMapping(name = "login", value =...
此外,还介绍了日志和实现NamingStrategy等配置细节。 总之,这些Java开源项目中文文档详细而全面地覆盖了Spring和Hibernate的方方面面,对于想要深入学习和实践Java开发的工程师来说,是一份宝贵的学习资源。通过...
- **实现 NamingStrategy**:解释如何自定义 Hibernate 的命名策略,以符合特定的应用场景。 - **XML 配置文件**:深入分析 Hibernate 的 XML 配置文件格式及其组成部分。 - **J2EE 应用程序服务器的集成**:说明...
- **NamingStrategy实现**:解释了自定义实体类和数据库表名映射的策略。 - **XML配置文件**:详述了hibernate.cfg.xml或hibernate.properties等配置文件的结构和用途。 - **J2EE集成**:讨论了在J2EE应用服务器...