package Ġcom . vac cae . room demo . bean Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . room . Database Ċ import Ġandroidx . room . Room Ċ import Ġandroidx . room . Room Database Ċ import Ġandroidx . room . migration . Migration Ċ import Ġandroidx . sqlite . db . Support SQLite Database ĊĊ Ċ /** Ċ Ġ* Ġä½ľèĢħ ï¼ļ Vac cae Ċ Ġ* Ġ éĤ®ç®± ï¼ļ 3 6 5 7 4 4 7 @ qq . com Ċ Ġ* ĠåĪĽå»º æĹ¶éĹ´ ï¼ļ 2 0 2 0 - 0 4 - 1 4 Ġ 1 4 : 2 9 Ċ Ġ* Ġ åĬŁèĥ½ æ¨¡åĿĹ è¯´æĺİ ï¼ļ Ċ Ġ*/ Ċ @ Database ( entities Ġ= Ġ[ Product :: class , Product Item :: class ], Ġversion Ġ= Ġ 2 ) Ċ abstract Ġclass ĠApp Data Base Ġ: ĠRoom Database () Ġ{ ĊĠĠĠ Ġabstract Ġfun ĠProduct Dao (): ĠProduct Dao ĊĊĠĠĠ Ġabstract Ġfun ĠProduct Item Dao (): Product Item Dao Ċ } Ċ Ċ class ĠDb Util Ġ{ ĊĊĠĠĠ Ġ// æķ°æį®åºĵ åįĩçº§ ĊĠĠĠ Ġvar Ġmigration 1 _ 2 Ġ= Ġobject Ġ: ĠMigration ( 1 , Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmigrate ( database : ĠSupport SQLite Database ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsql =" CREATE ĠTABLE Ġif Ġnot Ġexists ĠBody ( Code ĠTEXT ĠNOT ĠNULL Ġ," Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Bar Code ĠTEXT ĠNOT ĠNULL , Qty ĠINTEGER ĠNOT ĠNULL , PRIMARY ĠKEY ( Code , Bar Code )) " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase . exec SQL ( sql ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// åĪĽå»º åįķ ä¾ĭ ĊĠĠĠ Ġprivate Ġvar ĠINSTANCE : ĠApp Data Base ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġget Database ( context : ĠContext ): ĠApp Data Base Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( INSTANCE Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsynchronized ( lock Ġ= ĠApp Data Base :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( INSTANCE Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE Ġ= ĠRoom . database Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . application Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Data Base :: class . java , Ġ" test db " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. allow MainThread Queries () // åħģè®¸ åľ¨ ä¸» çº¿ç¨ĭ æŁ¥è¯¢ æķ°æį® ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Migrations ( migration 1 _ 2 )// æķ°æį®åºĵ åįĩçº§ æĹ¶ æī§è¡Į ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fallback To Dest ruct ive Migration () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠINSTANCE !! ĊĠĠĠ Ġ} Ċ }