内表和数据库表的CRUD(增删改查)

【博主SAP/ABAP交流群53144545

CRUD(增删改查)

C=Create

R=Read

U=Update

D=Delete

原子操作,不可再分割。

 

内表的CRUD(这里的内表仅指标准表)

1,查询

LOOP查询多行和READTABLE查询单行。

 

2,新增

APPEND 结构TO 内表。在内表的最后添加一条记录。

APPENDLINES OF 内表1 TO 内表2。在内表2的最后添加内表1的所有行。

INSERT 结构INTO 内表INDEX N。在内表的第N条记录前插入一条记录。

 

3,更新

MODIFY 内表FROM 结构INDEX N,更新第N条记录。利用TRANSPORTING关键字可以指定需要更新的字段。

在LOOP该内表时,可以不指定INDEX,即MODIFY内表FROM 结构,默认更新当前行。

 

4,删除

DELETE TABLE 内表 FROM 结构。

如果指定了内表的NON-UNIQUEKEY,那么只要结构和内表的KEY字段的值相同,就做删除;如果没有指定内表的KEY,就必须结构和内表的每个字段的值完全相同才做删除。

 

数据库表的CRUD

1,查询

SELECT语句

 

2,新增

INSERT 数据库表FROM TABLE 内表或者INSERT数据库表FROM 结构。

如果主键已存在,则新增失败,这时,如果是通过结构单条INSERT,sy-subrc返回4;如果是通过内表批量INSERT,则会引起DUMP。

可以使用关键字ACCEPTINGDUPLICATE KEYS防止批量INSERT时出现重复主键的记录而DUMP,使用该关键字后,如果出现重复主键的记录,则自动跳过该条记录。

 

3,更新

方法一:UPDATE数据库表FROM TABLE 内表或者UPDATE数据库表FROM 结构。
如果没有匹配的主键,则更新失败。

方法二:UPDATE数据库表SET 字段1= 'XXX' WHERE 字段2= 'XXX'。其中SET和WHERE里可以指定多个字段,SET和WHERE也可以使用相同字段。这种方法可以用来更新主键(但一般不推荐更新主键)。

 

4,删除

方法一:DELETE数据库表FROM TABLE 内表或者DELETE数据库表FROM 结构。

如果没有匹配的主键,则删除失败。

方法二:DELETE数据库表WHERE 字段1= 'XXX'。其中WHERE里可以指定多个字段。

 

*通过内表或者结构增改删数据库表,结构必须和数据库表一致。

* INSERT和UPDATE可以合并为MODIFY。如果主键已存在,作更新;如果主键不存在,作插入。

*使用内表批量操作时,只要有一条记录操作失败,则sy-subrc返回4。

*从效率角度出发,建议使用内表批量操作,而不是在LOOP循环里针对结构逐条操作。

 

FOR ALL ENTRIES的作用相当于是内表和数据库表版的INNER JOIN,但FOR ALL ENTRIES的底层实现是转化成WHERE条件里的IN,所以在内表取值范围较大时效率较低,这时尽可能用INNER JOIN去代替。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是有关使用Spring Boot实现CRUD操作的增加、删除、修询的一些基本步骤: 1. 配置项目依赖 在您的Maven或Gradle构建文件中添加Spring Boot和相关的数据库依赖。例如,如果您想要使用MySQL数据库,则需要添加以下依赖项: ```xml <!-- Spring Boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- MySQL database driver --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- Spring Data JPA --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> ``` 2. 配置数据库连接 在application.properties或application.yml文件中添加数据库连接信息,如下所示: ```yaml spring.datasource.url=jdbc:mysql://localhost:3306/yourdatabase spring.datasource.username=yourusername spring.datasource.password=yourpassword spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.jpa.show-sql=true spring.jpa.hibernate.ddl-auto=update ``` 3. 创建实体类 创建一个实体类来示您要持久化的数据。例如,如果您要创建一个用户对象,则可以编写以下代码: ```java @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "name") private String name; @Column(name = "email") private String email; // getter and setter methods } ``` 4. 创建Repository接口 创建一个Repository接口来定义CRUD操作。例如,如果您要操作用户对象,则可以编写以下代码: ```java @Repository public interface UserRepository extends JpaRepository<User, Long> { } ``` 5. 创建服务类 创建一个服务类来实现您的业务逻辑。例如,如果您要实现用户管理功能,则可以编写以下代码: ```java @Service public class UserService { @Autowired private UserRepository userRepository; public List<User> getAllUsers() { return userRepository.findAll(); } public User getUserById(Long id) { return userRepository.findById(id).orElse(null); } public User addUser(User user) { return userRepository.save(user); } public User updateUser(User user) { return userRepository.save(user); } public void deleteUserById(Long id) { userRepository.deleteById(id); } } ``` 6. 创建控制器类 创建一个控制器类来处理HTTP请求。例如,如果您要处理用户对象的HTTP请求,则可以编写以下代码: ```java @RestController @RequestMapping("/api/users") public class UserController { @Autowired private UserService userService; @GetMapping("") public List<User> getAllUsers() { return userService.getAllUsers(); } @GetMapping("/{id}") public User getUserById(@PathVariable("id") Long id) { return userService.getUserById(id); } @PostMapping("") public User addUser(@RequestBody User user) { return userService.addUser(user); } @PutMapping("") public User updateUser(@RequestBody User user) { return userService.updateUser(user); } @DeleteMapping("/{id}") public void好的,我可以用中文回答您关于 Spring Boot CRUD 的问题。 Spring Boot 是一个基于 Spring 框架的快速开发框架,可以帮助开发者快速构建 Web 应用程序。CRUD 则是指对于一个数据实体,可以进行增加(Create)、询(Retrieve)、更新(Update)、删除(Delete)的操作。 在 Spring Boot 中实现 CRUD 操作,通常需要以下步骤: 1. 定义数据实体类:首先需要定义一个数据实体类,示要进行 CRUD 操作的数据对象。该类需要使用 JPA 注解来定义实体和属性,并且需要定义一个主键属性。 2. 定义数据访问层接口:接下来需要定义一个数据访问层接口,用于定义数据操作的方法,包括增加、询、更新和删除等操作。 3. 实现数据访问层接口:在实现数据访问层接口时,需要使用 Spring Data JPA 提供的 Repository 接口,该接口提供了许多 CRUD 操作的默认实现,可以大大减少我们的代码量。 4. 定义业务逻辑层接口和实现类:在定义业务逻辑层接口和实现类时,可以将数据访问层接口作为一个成员变量注入进来,并在业务逻辑层方法中调用数据访问层接口中的方法,来完成具体的数据操作。 5. 定义控制器类:最后需要定义一个控制器类,用于接收 HTTP 请求,并将请求参数传递给业务逻辑层进行处理,然后返回相应的结果给客户端。 以上就是实现 Spring Boot CRUD 的基本步骤,具体实现过程可以参考 Spring Boot 官方文档和相关教程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值