使用java从mysql中的bit(2)列存储和检索值
Posted
技术标签:
【中文标题】使用java从mysql中的bit(2)列存储和检索值【英文标题】:Store and retrive value from bit(2) column in mysql using java 【发布时间】:2020-11-07 06:21:49 【问题描述】:我需要添加类似的值 0 - 活动, 1 - 不活动, 2 - 出院
在我的数据库中,我使用的列数据类型是bit(2)
我可以将它存储在数据库中
使用枚举
这是我的枚举
public enum Status
ACTIVE,
INACTIVE,
DISCHARGED
我可以使用Status.ACTIVE.ordinal()
将值存储在数据库中,但无法从数据库中获取值。
如何在 java 中从数据库中获取值?
【问题讨论】:
你必须创建一个转换器thorben-janssen.com/jpa-21-how-to-implement-type-converter 从数据库中检索序数值并使用 Status.values()[ordinal] 转换为枚举。 【参考方案1】:快速回复:https://spring.io/guides/gs/accessing-data-jpa/
完整答案:
将 jpa 和 mysql-connector 依赖添加到您的 pom.xml 文件中:
<!-- JPA -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- MySQL connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
之后,您应该创建扩展 CrudRepository 的接口(例如 SomeDataRepository)。
public interface SomeDataRepository extends CrudRepository<Status, Integer>
然后你从数据库中获取数据就变得很容易了(也和其他使用 db 的工作一样):
@Autowired
SomeDataRepository someDataRepository;
public List<Status> getData()
return someDataRepository.findAll();
【讨论】:
感谢您的回答,但这不是我想要的。我需要从数据库中获取位值并将其与枚举进行比较。我总是收到错误【参考方案2】:要从数据库中将bit(2)
列的值作为integer
获取,我们需要使用CAST()
函数
SELECT CAST(colName AS unsigned int) as aliasName FROM tableName
【讨论】:
以上是关于使用java从mysql中的bit(2)列存储和检索值的主要内容,如果未能解决你的问题,请参考以下文章