`
jie2workjava
  • 浏览: 151144 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

NamingStrategy

阅读更多

搜罗了很多资料,可是只是看到一个,但是还是没有调出来(也没有源码),后来自己试了试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();   
*/

 

分享到:
评论

相关推荐

    newtonsoft.json.dll 4.5

    - **NamingStrategy**: 控制JSON键的命名规则,如驼峰式或下划线分隔等。 **6. .NET Framework 4.5 支持** Newtonsoft.Json 4.5版本是专为.NET Framework 4.5设计的,它充分利用了.NET 4.5的新特性,如异步操作。...

    hibernate实现动态表查询的多种解决方案

    1. **命名策略(NamingStrategy)**:Hibernate默认使用一种命名策略来转换实体类属性名到数据库列名。如果希望自定义这种映射规则,可以通过实现`NamingStrategy`接口来自定义命名策略。 2. **拦截器(Interceptor...

    learn-netjson.zip

    例如,可以创建一个`JsonSerializerSettings`实例,然后设置`NamingStrategy`属性来处理属性名的转换。以下是一个简单的例子,展示了如何使用`CamelCaseNamingStrategy`: ```csharp using NetJSON; using System....

    springboot整合mybatis-plus代码生成器的配置解析.docx

    接下来,我们需要指定代码生成的策略,包括命名策略(NamingStrategy)、实体字段策略(EntityColumnRuleConfig)、填充策略(TableFill)等: ```java // 配置策略 StrategyConfig strategy = new StrategyConfig...

    随即点名java

    在“随即点名java”项目中,可能会有多个类实现`NamingStrategy`接口,如`RandomNamingStrategy`用于随机选择学生,`AlphabeticalNamingStrategy`按照名字顺序进行点名。每个实现类会提供接口中定义的方法的具体实现...

    hibernate详解

    8. **NamingStrategy**:NamingStrategy允许自定义数据库表名和列名的生成规则,以适应不同的命名规范或避免名称冲突。 总之,Hibernate2为Java开发者提供了一种强大的工具,将复杂的数据库操作转换为面向对象的API...

    SpringBoot集成MyBatis-Plus-Join

    strategy.setColumnNaming(NamingStrategy.underline_to_camel); strategy.setEntityTableFieldAnnotationEnable(true); strategy.setInclude(new String[]{"your_table_name"}); // 需要生成的表名 new ...

    MyBatis代码生成器.pdf

    strategy.setColumnNaming(NamingStrategy.underline_to_camel); // 列名转换策略 strategy.setEntityTableFieldAnnotationEnable(true); // 是否在实体类字段添加@TableField注解 strategy.setInclude(new ...

    hibernate+中文api

    前言 1. 翻译说明 2. 版权声明 1. Hibernate入门 1.1. 前言 ...3.6. 实现NamingStrategy 3.7. XML配置文件 3.8. J2EE应用程序服务器的集成 3.8.1. 事务策略配置 3.8.2. JNDI绑定的SessionFactory

    mybatisplus3.5.3.1基础生成代码完整步骤(超详细)

    strategy.setNaming(NamingStrategy.underline_to_camel); // 表名转换策略 strategy.setTablePrefix("t_"); // 设置表前缀 strategy.setInclude(new String[]{"user"}); // 需要生成的表名,多个表名用逗号分隔 ...

    JsonInMvc.zip

    这里,我们创建了一个`JsonSerializerSettings`实例,并设置了`NamingStrategy`为`CamelCaseNamingStrategy`,这将确保在序列化时属性名转换为驼峰格式。 3. 处理AJAX请求: 前端通常使用jQuery或其他类似的库...

    SpringBoot整合MyBatis-Plus

    mpg.setStrategy(new StrategyConfig().setNaming(NamingStrategy.underline_to_camel)); // 配置输出路径 mpg.setOutputDir("src/main/java"); // 执行生成 mpg.execute(); } } ``` 运行主程序,根据提示...

    mybaties逆向工程

    strategyConfig.setNaming(NamingStrategy.underline_to_camel); // 表名转换策略 strategyConfig.setInclude(new String[]{"your_table_name"}); // 需要生成的表 configBuilder.setStrategy(strategyConfig); ...

    mybatis-plus-code-generate.zip

    strategy.setNaming(NamingStrategy.underline_to_camel); // 表名生成策略 strategy.setInclude(new String[]{"your_table_name"}); // 需要生成的表名,多个用逗号分隔 // 执行生成 mpg.setGlobalConfig(gc);...

    Spring RequestMappingHandlerMapping详解.pdf

    - `namingStrategy`:映射命名策略,通常用于生成映射的名字。 - `mappingRegistry`:映射注册表,存储映射信息。 - **命名策略**: - 如果映射已经配置了名字(如通过`@RequestMapping(name = "login", value =...

    Java开源项目中文文档

    此外,还介绍了日志和实现NamingStrategy等配置细节。 总之,这些Java开源项目中文文档详细而全面地覆盖了Spring和Hibernate的方方面面,对于想要深入学习和实践Java开发的工程师来说,是一份宝贵的学习资源。通过...

    Hibernate 中文手册

    - **实现 NamingStrategy**:解释如何自定义 Hibernate 的命名策略,以符合特定的应用场景。 - **XML 配置文件**:深入分析 Hibernate 的 XML 配置文件格式及其组成部分。 - **J2EE 应用程序服务器的集成**:说明...

    HIBERNATE - 符合Java习惯的关系数据库持久化.docx

    - **NamingStrategy实现**:解释了自定义实体类和数据库表名映射的策略。 - **XML配置文件**:详述了hibernate.cfg.xml或hibernate.properties等配置文件的结构和用途。 - **J2EE集成**:讨论了在J2EE应用服务器...

Global site tag (gtag.js) - Google Analytics