• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jhannes / fluent-jdbc / #172

01 Aug 2024 07:53PM UTC coverage: 94.146% (-1.3%) from 95.478%
#172

push

jhannes
DatabaseUpdatable.setField with expression allows to insert and update rows with calculated column values

41 of 45 new or added lines in 7 files covered. (91.11%)

32 existing lines in 12 files now uncovered.

1174 of 1247 relevant lines covered (94.15%)

0.94 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

81.82
/src/main/java/org/fluentjdbc/DbContextUpdateBuilder.java
1
package org.fluentjdbc;
2

3
import java.util.Collection;
4
import java.util.List;
5
import java.util.Map;
6

7
/**
8
 * Generate <code>UPDATE</code> insert statements by collecting field names and parameters. Support
9
 * autogeneration of primary keys. Example:
10
 *
11
 * <pre>
12
 * {@link DbContextTable} table = context.table("database_test_table");
13
 * try (DbContextConnection ignored = context.startConnection(dataSource)) {
14
 *      int count = table
15
 *          .where("id", id)
16
 *          .update()
17
 *          .setField("name", "Something")
18
 *          .setField("code", 102)
19
 *          .execute(connection);
20
 * }
21
 * </pre>
22
 */
23
public class DbContextUpdateBuilder implements DatabaseUpdatable<DbContextUpdateBuilder> {
24

25
    private final DbContextTable table;
26
    private DatabaseUpdateBuilder builder;
27

28
    public DbContextUpdateBuilder(DbContextTable table, DatabaseUpdateBuilder builder) {
1✔
29
        this.table = table;
1✔
30
        this.builder = builder;
1✔
31
    }
1✔
32

33
    /**
34
     * Calls {@link #setField(String, Object)} for each fieldName and parameter
35
     */
36
    @Override
37
    public DbContextUpdateBuilder setFields(List<String> fields, List<?> values) {
38
        return build(builder.setFields(fields, values));
1✔
39
    }
40

41
    /**
42
     * Calls {@link #setField(String, Object)} for each key and value in the parameter map
43
     */
44
    @Override
45
    public DbContextUpdateBuilder setFields(Map<String, ?> fields) {
UNCOV
46
        return build(builder.setFields(fields));
×
47
    }
48

49
    /**
50
     * Adds the fieldName to the SQL statement and the value to the parameter list
51
     */
52
    @Override
53
    public DbContextUpdateBuilder setField(String field, Object value) {
54
        return build(builder.setField(field, value));
1✔
55
    }
56

57
    @Override
58
    public DbContextUpdateBuilder setField(String field, String expression, Collection<?> values) {
NEW
59
        return build(builder.setField(field, expression, values));
×
60
    }
61

62
    /**
63
     * Will execute the UPDATE statement to the database
64
     */
65
    public int execute() {
66
        return builder.execute(table.getConnection());
1✔
67
    }
68

69
    private DbContextUpdateBuilder build(DatabaseUpdateBuilder builder) {
70
        this.builder = builder;
1✔
71
        return this;
1✔
72
    }
73
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc