Skip to content

Commit 46976f9

Browse files
committed
support find schema
1 parent 5c41144 commit 46976f9

File tree

4 files changed

+31
-2
lines changed

4 files changed

+31
-2
lines changed

springboot-starter-persistence/src/main/java/com/codingapi/springboot/persistence/DomainPersistence.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.codingapi.springboot.persistence;
22

3+
import java.util.List;
4+
35
public interface DomainPersistence {
46

57
void save(Object domain);
@@ -9,4 +11,6 @@ public interface DomainPersistence {
911
void delete(Class<?> domainClass,Object id);
1012

1113
void update(Object domain);
14+
15+
<T> List<T> find(Class<T> domainClass, String schema, Object... fields);
1216
}

springboot-starter-persistence/src/main/java/com/codingapi/springboot/persistence/jdbc/impl/JdbcDomainPersistence.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
import java.sql.PreparedStatement;
1717
import java.sql.Statement;
18+
import java.util.List;
1819

1920
@AllArgsConstructor
2021
public class JdbcDomainPersistence implements DomainPersistence {
@@ -60,7 +61,7 @@ public <T> T get(Class<T> domainClass, Object id) {
6061
}
6162

6263
@Override
63-
public void delete(Class<?> domainClazz,Object id) {
64+
public void delete(Class<?> domainClazz, Object id) {
6465
Schema schema = SchemaContext.getINSTANCE().getSchema(domainClazz);
6566
if (schema != null) {
6667
String sql = schema.deleteSchema().deleteSchema();
@@ -76,4 +77,14 @@ public void update(Object domain) {
7677
jdbcTemplate.update(updateSchema.updateSchema(), updateSchema.getUpdateValues(domain));
7778
}
7879
}
80+
81+
82+
@Override
83+
public <T> List<T> find(Class<T> domainClass, String sql, Object... fields) {
84+
Schema schema = SchemaContext.getINSTANCE().getSchema(domainClass);
85+
if (schema != null) {
86+
return jdbcTemplate.query(sql, fields, new BeanPropertyRowMapper<>(domainClass));
87+
}
88+
return null;
89+
}
7990
}

springboot-starter-persistence/src/test/java/com/example/demo/repository/DemoRepository.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import lombok.extern.slf4j.Slf4j;
77
import org.springframework.stereotype.Repository;
88

9+
import java.util.List;
10+
911
@Slf4j
1012
@Repository
1113
@AllArgsConstructor
@@ -22,11 +24,15 @@ public Demo get(int id) {
2224
}
2325

2426
public void delete(int id) {
25-
domainPersistence.delete(Demo.class,id);
27+
domainPersistence.delete(Demo.class, id);
2628
}
2729

2830
public void update(Demo demo) {
2931
domainPersistence.update(demo);
3032
}
3133

34+
public List<Demo> findByName(String name) {
35+
return domainPersistence.find(Demo.class, "select * from demo where name = ?", name);
36+
}
37+
3238
}

springboot-starter-persistence/src/test/java/com/example/demo/repository/DemoRepositoryTests.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import org.springframework.beans.factory.annotation.Autowired;
77
import org.springframework.boot.test.context.SpringBootTest;
88

9+
import java.util.List;
10+
911
@Slf4j
1012
@SpringBootTest
1113
public class DemoRepositoryTests {
@@ -51,4 +53,10 @@ void update() {
5153
demo.setName("123456");
5254
demoRepository.update(demo);
5355
}
56+
57+
@Test
58+
void getByName() {
59+
List<Demo> list = demoRepository.findByName("demo");
60+
log.info("list: {}", list);
61+
}
5462
}

0 commit comments

Comments
 (0)