当前位置: 首页 > 面试题库 >

休眠实体中IP地址的最佳类型?

康照
2023-03-14
问题内容

使用Hibernate在数据库中存储IP地址的最佳类型是什么?

我虽然是Byte []或String,但是有没有更好的方法,或者您使用什么呢?

 @Column(name = "range_from",  nullable = false)
 public Byte[] getRangeFrom() {
  return rangeFrom;
 }
 public void setRangeFrom(Byte[] rangeFrom) {
  this.rangeFrom = rangeFrom;
 }

问题答案:

我将其存储在很 长的时间内 以进行查找。您可以使用以下功能进行转换。

public static string GetStandardIP(long numericIP)
{
    string w = Convert.ToString(Convert.ToInt64(numericIP / 16777216) % 256);
    string x = Convert.ToString(Convert.ToInt64(numericIP / 65536) % 256);
    string y = Convert.ToString(Convert.ToInt64(numericIP / 256) % 256);
    string z = Convert.ToString(Convert.ToInt64(numericIP) % 256);

    return w + "." + x + "." + y + "." + z;
}

还有这个

public static long GetNumericIP(string standardIP)
{
    if (standardIP != null && standardIP != string.Empty)
    {
        string[] ipParts = standardIP.Split('.');
        long numericIP = 16777216 * Convert.ToInt64(ipParts[0]) + 65536 * Convert.ToInt64(ipParts[1]) + 256 * Convert.ToInt32(ipParts[2]) + Convert.ToInt32(ipParts[3]);

        return numericIP;
    }
    return 0;
}

您可能需要通过检查参数来改进它们。



 类似资料:
  • 问题内容: 我正在使用Hibernate 3编写Web应用程序。 所以,过了一会儿,我注意到有些东西很慢。因此,我测试了Hibernate Profiler,发现Hibernate将无理地进行许多数据库调用以简化操作。原因当然是我加载了一个对象(该对象有几个“父母”),而这些“父母”还有其他“父母”。因此,即使我只需要基本对象,从根本上来说,hibernate都会加载它们。好的,所以我研究了延迟加

  • 问题内容: 在对象级别,实体类型和值类型之间有什么区别?我知道实体将具有ID,但值将没有,但为什么我们需要不同的方式来映射实体与值类型? 这样做是为了让hibernate状态可以对值类型应用任何优化? 问题答案: 实体已经定义了表的持久化位置。因此,当您在实体A中拥有B实体的列表时,则无需为B定义目标表:B已经定义了它。值类型没有任何关联的表,因此实体A 中的in 映射必须定义将使用哪个表来存储此

  • 问题内容: 我使用Hibernate 4和Spring 3。 我有两个实体。 图书实体 和作者实体 和JSON取决于pom.xml 我的根上下文在这里- … servlet-context.xml 控制器。 在我的DAO中找到findAll: 在调试中,我看到该方法返回2条记录,但是Spring无法将结果转换为JSON并返回406 HTTP错误。怎么了? 我附上我在调试中看到的图像。- http:

  • 问题内容: 能否请您告诉我,我如何才能很好地为Hibernate实体启用Spring自动装配? 假设我有一个实体,并希望在那里有邮件发送者: 有没有比做的更好的方法 在我的DAO中? 谢谢! 问题答案: 有可能的!(这是Spring Roo中的默认样式!) 您所需要做的就是将@Configurable批注添加到您的实体。在配置中并使用AspectJ编织激活注释。 Spring参考中有一章:7.8.

  • 问题内容: 目前,Hibernate允许我直接使用*对一关系定义的对象 是否可以获取外键而不是对象? 我看到的当前方法是在映射中添加addint: 是否有更好的方法来获取外键,或者这是唯一的方法? 问题答案: 是的,你可以这样做。您只需要清楚地告诉休眠状态,哪一个是应该维护的映射,如下所示:

  • 问题内容: 当我使用@Entity注释类并尝试解决依赖关系时,我可以在两个不同的包javax.persistence.Entity和org.hibernate.annotations.Entity中选择包。 javax包是JPA的实体注释,但是为什么会有休眠的实体注释,它与JPA的注释有区别?仅仅是允许定义更多属性的扩展吗? 问题答案: 具有一些尚未标准化的额外属性。仅当直接使用hibernate