1+ package api_test ;
2+
3+ import com .github .artbits .jsqlite .DB ;
4+ import com .github .artbits .jsqlite .DataSupport ;
5+ import com .github .artbits .jsqlite .Options ;
6+ import org .junit .jupiter .api .Test ;
7+
8+ import java .util .Arrays ;
9+ import java .util .List ;
10+ import java .util .function .Consumer ;
11+
12+ public final class APITest {
13+
14+
15+ public static class User extends DataSupport <User > {
16+ public String name ;
17+ public Integer age ;
18+ public Boolean vip ;
19+
20+ public User (Consumer <User > consumer ) {
21+ super (consumer );
22+ }
23+ }
24+
25+
26+ public class Book extends DataSupport <Book > {
27+ public String name ;
28+ public String author ;
29+ public Double price ;
30+
31+ public Book (Consumer <Book > consumer ) {
32+ super (consumer );
33+ }
34+ }
35+
36+
37+
38+ DB connect () {
39+ DB db = DB .connect ("database/example.db" );
40+ db .tables (User .class );
41+ db .deleteAll (User .class );
42+ return db ;
43+ }
44+
45+
46+
47+ @ Test
48+ void insert () {
49+ List <User > users = Arrays .asList (new User (u -> {
50+ u .name = "user1" ;
51+ u .age = 18 ;
52+ u .vip = false ;
53+ }), new User (u -> {
54+ u .name = "user2" ;
55+ u .age = 20 ;
56+ u .vip = true ;
57+ }), new User (u -> {
58+ u .name = "user3" ;
59+ u .age = 22 ;
60+ u .vip = false ;
61+ }), new User (u -> {
62+ u .name = "user4" ;
63+ u .age = 24 ;
64+ u .vip = true ;
65+ }), new User (u -> {
66+ u .name = "user5" ;
67+ u .age = 26 ;
68+ u .vip = true ;
69+ }));
70+
71+ DB db = connect ();
72+ users .forEach (db ::insert );
73+ }
74+
75+
76+
77+ @ Test
78+ void updateById () {
79+ DB db = connect ();
80+ insert ();
81+ User user = db .first (User .class );
82+ db .update (user .set (u -> u .age = 60 ));
83+ }
84+
85+
86+
87+ @ Test
88+ void updateByCondition () {
89+ DB db = connect ();
90+ insert ();
91+ db .update (new User (u -> u .age = 70 ), "name = ?" , "user4" );
92+ }
93+
94+
95+
96+ @ Test
97+ void findOneById () {
98+ DB db = connect ();
99+ insert ();
100+ User user = db .findOne (User .class , 2L );
101+ user .printJson ();
102+ }
103+
104+
105+ @ Test
106+ void findOneByCondition () {
107+ DB db = connect ();
108+ insert ();
109+ User user = db .findOne (User .class , "name = ?" , "user3" );
110+ user .printJson ();
111+ }
112+
113+
114+ @ Test
115+ void findAll () {
116+ DB db = connect ();
117+ insert ();
118+ List <User > users = db .findAll (User .class );
119+ users .forEach (DataSupport ::printJson );
120+ }
121+
122+
123+ @ Test
124+ void findByIds () {
125+ DB db = connect ();
126+ insert ();
127+ List <User > users = db .find (User .class , 2L , 1L );
128+ users .forEach (DataSupport ::printJson );
129+ }
130+
131+
132+ @ Test
133+ void findByIdList () {
134+ DB db = connect ();
135+ insert ();
136+ List <User > users = db .find (User .class , Arrays .asList (1L , 2L ));
137+ users .forEach (DataSupport ::printJson );
138+ }
139+
140+
141+ @ Test
142+ void find () {
143+ DB db = connect ();
144+ insert ();
145+ List <User > users = db .find (User .class , options -> options
146+ .select ("name" , "age" )
147+ .where ("age <= ? && vip = ?" , 50 , true )
148+ .order ("age" , Options .DESC )
149+ .limit (5 )
150+ .offset (0 ));
151+ users .forEach (DataSupport ::printJson );
152+ }
153+
154+
155+ @ Test
156+ void deleteAll () {
157+ DB db = connect ();
158+ insert ();
159+ db .deleteAll (User .class );
160+ }
161+
162+
163+ @ Test
164+ void deleteByIdList () {
165+ DB db = connect ();
166+ db .delete (User .class , Arrays .asList (1L , 4L ));
167+ }
168+
169+
170+ @ Test
171+ void deleteByCondition () {
172+ DB db = connect ();
173+ insert ();
174+ db .delete (User .class , "name = ?" , "user3" );
175+ }
176+
177+
178+
179+ @ Test
180+ void deleteByIds () {
181+ DB db = connect ();
182+ insert ();
183+ db .delete (User .class , 4L );
184+ }
185+
186+
187+ @ Test
188+ void first () {
189+ DB db = connect ();
190+ insert ();
191+
192+ User user1 = db .first (User .class );
193+ user1 .printJson ();
194+
195+ User user2 = db .first (User .class , "vip = ?" , true );
196+ user2 .printJson ();
197+ }
198+
199+
200+ @ Test
201+ void last () {
202+ DB db = connect ();
203+ insert ();
204+
205+ User user1 = db .last (User .class );
206+ user1 .printJson ();
207+
208+ User user2 = db .last (User .class , "vip = ?" , false );
209+ user2 .printJson ();
210+ }
211+
212+
213+ @ Test
214+ void count () {
215+ DB db = connect ();
216+ insert ();
217+
218+ long count1 = db .count (User .class );
219+ System .out .println (count1 );
220+
221+ long count2 = db .count (User .class , "vip = ?" , true );
222+ System .out .println (count2 );
223+ }
224+
225+
226+ @ Test
227+ void average () {
228+ DB db = connect ();
229+ insert ();
230+
231+ double d1 = db .average (User .class , "age" );
232+ System .out .println (d1 );
233+
234+ double d2 = db .average (User .class , "age" , "vip = ?" , false );
235+ System .out .println (d2 );
236+ }
237+
238+
239+ @ Test
240+ void sum () {
241+ DB db = connect ();
242+ insert ();
243+
244+ int i1 = db .sum (User .class , "age" ).intValue ();
245+ System .out .println (i1 );
246+
247+ int i2 = db .sum (User .class , "age" , "vip = ?" , false ).intValue ();
248+ System .out .println (i2 );
249+ }
250+
251+
252+ @ Test
253+ void max () {
254+ DB db = connect ();
255+ insert ();
256+
257+ int age1 = db .max (User .class , "age" ).intValue ();
258+ System .out .println (age1 );
259+
260+ int age2 = db .max (User .class , "age" , "vip = ?" , false ).intValue ();
261+ System .out .println (age2 );
262+ }
263+
264+
265+ @ Test
266+ void min () {
267+ DB db = connect ();
268+ insert ();
269+
270+ int age1 = db .min (User .class , "age" ).intValue ();
271+ System .out .println (age1 );
272+
273+ int age2 = db .min (User .class , "age" , "vip = ?" , true ).intValue ();
274+ System .out .println (age2 );
275+ }
276+
277+
278+ @ Test
279+ void version () {
280+ DB db = connect ();
281+ String version = db .version ();
282+ System .out .println (version );
283+ }
284+
285+
286+ }
0 commit comments