简体   繁体   English

使用 java 从 mysql 中的 bit(2) 列存储和检索值

[英]Store and retrive value from bit(2) column in mysql using java

I need to add values something like 0 - ACTIVE, 1 - INACTIVE, 2 - DISCHARGED我需要添加类似 0 - ACTIVE、1 - INACTIVE、2 - DISCHARGED 的值

In my database and the column datatype I am using is bit(2) I am able to store it in database using enum在我的数据库中,我使用的列数据类型是bit(2)我可以使用 enum 将它存储在数据库中

Here is my enum这是我的枚举

public enum Status {
  ACTIVE,
  INACTIVE,
  DISCHARGED
}

I am able to store the value in database using Status.ACTIVE.ordinal() but not able to fetch the value from DB.我可以使用Status.ACTIVE.ordinal()将值存储在数据库中,但无法从数据库中获取值。

How can I fetch the value from database in java?如何从 java 的数据库中获取值?

Quick answer: https://spring.io/guides/gs/accessing-data-jpa/快速回答: https://spring.io/guides/gs/accessing-data-jpa/

Full answer:完整答案:

add jpa and mysql-connector dependency to your pom.xml file:将 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>

After that, you should create interface (for example, SomeDataRepository), that extends CrudRepository.之后,您应该创建扩展 CrudRepository 的接口(例如 SomeDataRepository)。

public interface SomeDataRepository extends CrudRepository<Status, Integer> {
}

Then you fetching data from database becomes pretty easy (also as other work with db):然后,您从数据库中获取数据变得非常容易(也与使用 db 的其他工作一样):

@Autowired
SomeDataRepository someDataRepository;
public List<Status> getData() {
    return someDataRepository.findAll();
}

To fetch the value of bit(2) column as integer from DB we need to use the CAST() function要从 DB 中获取bit(2)列的值作为integer ,我们需要使用CAST() function

SELECT CAST(colName AS unsigned int) as aliasName FROM tableName

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM