版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
目錄4.1SQLiteDatabase簡介4.2SQLiteOpenHelper簡介4.3SQLite數(shù)據(jù)庫的應(yīng)用
四、SQLite數(shù)據(jù)庫四、SQLite數(shù)據(jù)庫
Android可以使用SQLiteDatabase來代表一個(gè)數(shù)據(jù)庫??梢酝ㄟ^SQLiteDatabase來創(chuàng)建、刪除、執(zhí)行SQL命令,并執(zhí)行其他常見的數(shù)據(jù)庫管理任務(wù)。SQLiteDatabase提供了openOrCreateDatabase等靜態(tài)方法來打開或者創(chuàng)建數(shù)據(jù)庫。它會(huì)自動(dòng)檢測相應(yīng)的數(shù)據(jù)庫是否存在,如果不存在,則自動(dòng)創(chuàng)建相應(yīng)的數(shù)據(jù)庫。4.1SQLiteDatabase簡介四、SQLite數(shù)據(jù)庫
一些SQLiteDatabase常用操作的方法:publiclonginsert(Stringtable,StringnullColumnHack,ContentValuesvalues):將行插入到數(shù)據(jù)庫的簡便方法。publicintupdate(Stringtable,ContentValuesvalues,StringwhereClause,String[]whereArgs):數(shù)據(jù)庫中的行更新的簡便方法。publicintdelete(Stringtable,StringwhereClause,String[]whereArgs):數(shù)據(jù)庫中刪除行的簡便方法。四、SQLite數(shù)據(jù)庫Cursor(光標(biāo))對象的一些常見方法:booleanmove(intoffset):從當(dāng)前位置移動(dòng)光標(biāo),向前或向后移動(dòng)。正數(shù)向前移,負(fù)數(shù)向后移。成功返回true,失敗返回false。booleanmoveToLast():將光標(biāo)移動(dòng)到最后一行。成功返回true,失敗返回false。booleanmoveToNext():將光標(biāo)移動(dòng)到下一行。成功返回true,失敗返回false。booleanmoveToPosition(intposition):將光標(biāo)移動(dòng)到指定的位置。成功返回true,失敗返回false。
四、SQLite數(shù)據(jù)庫
SQLiteOpenHelper是一個(gè)輔助類,可用來創(chuàng)建和管理數(shù)據(jù)庫。通過創(chuàng)建一個(gè)子類,實(shí)現(xiàn)onCreate(SQLiteDatabase),onUpgrade(SQLiteDatabase,int,int)方法。這個(gè)子類負(fù)責(zé)打開數(shù)據(jù)庫(如果數(shù)據(jù)庫存在)、創(chuàng)建數(shù)據(jù)庫(如果數(shù)據(jù)庫不存在)、更新數(shù)據(jù)庫等。SQLiteOpenHelper同時(shí)也有助于ContentProvider第一次打開和升級數(shù)據(jù)庫。4.2SQLiteOpenHelper簡介四、SQLite數(shù)據(jù)庫
一些SQLiteOpenHelper常用操作的方法:publicSQLiteDatabasegetReadableDatabase():以讀的方式打開數(shù)據(jù)庫。publicSQLiteDatabasegetWritableDatabase():以寫的方式打開數(shù)據(jù)庫。publicabstractvoidonCreate(SQLiteDatabasedb):當(dāng)數(shù)據(jù)庫為第一次創(chuàng)建時(shí)調(diào)用。這是創(chuàng)建表和表的初始化的地方。publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion):當(dāng)數(shù)據(jù)庫需要更新時(shí)調(diào)用。數(shù)據(jù)庫的增刪改等操作需要使用該方法,此方法需要在事務(wù)中執(zhí)行。如果出現(xiàn)異常,所有的更改將自動(dòng)回滾。四、SQLite數(shù)據(jù)庫
SQLiteOpenHelper是一個(gè)輔助類,可用來創(chuàng)建和管理數(shù)據(jù)庫。通過創(chuàng)建一個(gè)子類,實(shí)現(xiàn)onCreate(SQLiteDatabase),onUpgrade(SQLiteDatabase,int,int)方法。這個(gè)子類負(fù)責(zé)打開數(shù)據(jù)庫(如果數(shù)據(jù)庫存在)、創(chuàng)建數(shù)據(jù)庫(如果數(shù)據(jù)庫不存在)、更新數(shù)據(jù)庫等。SQLiteOpenHelper同時(shí)也有助于ContentProvider第一次打開和升級數(shù)據(jù)庫。4.3SQLite數(shù)據(jù)庫的應(yīng)用四、SQLite數(shù)據(jù)庫back
案例1使用SQLiteOpenHelper來完成一個(gè)簡單的注冊功能。
效果如圖4.1所示。圖4.1四、SQLite數(shù)據(jù)庫該案例的布局文件有以下幾種:(1)?activity_main.xml文件:<LinearLayoutxmlns:android="http:///apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"android:orientation="vertical">
四、SQLite數(shù)據(jù)庫<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="用戶名:"/><EditText android:id="@+id/nameTxt" android:layout_width="match_parent" android:layout_height="wrap_content" />四、SQLite數(shù)據(jù)庫<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="密碼:"/><EditText android:id="@+id/pwdTxt" android:password="true" android:layout_width="match_parent" android:layout_height="wrap_content" />四、SQLite數(shù)據(jù)庫<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="年齡:"/><EditText android:id="@+id/ageTxt" android:layout_width="match_parent" android:layout_height="wrap_content" />
四、SQLite數(shù)據(jù)庫<Button android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="clickBtn" android:text="注冊"/><Button android:id="@+id/btn2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="創(chuàng)建數(shù)據(jù)庫"/></LinearLayout>四、SQLite數(shù)據(jù)庫(2)?MyDatabaseHelper.java文件:publicclassMyDatabaseHelperextendsSQLiteOpenHelper //創(chuàng)建表的SQL語句 finalStringCREATE_TABLE_SQL="createtableuserinfo(_idintegerprimarykeyautoincrement,name,pwd,age)";publicMyDatabaseHelper(Contextcontext,Stringname,CursorFactoryfactory,intversion){ super(context,name,factory,version); //TODOAuto-generatedconstructorstub}四、SQLite數(shù)據(jù)庫 @Override publicvoidonCreate(SQLiteDatabasedb){ //第一次使用數(shù)據(jù)庫時(shí)自動(dòng)創(chuàng)建表 db.execSQL(CREATE_TABLE_SQL); } @Override publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){ //TODOAuto-generatedmethodstub }}//End四、SQLite數(shù)據(jù)庫(3)?MainActivity.java文件:publicclassMainActivityextendsActivity{
//定義組件
EditTextnameTxt=null;
EditTextageTxt=null;
EditTextpwdTxt=null;
MyDatabaseHelperdb;
四、SQLite數(shù)據(jù)庫@OverrideprotectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//db=SQLiteDatabase.openOrCreateDatabase(this.getFilesDir().toString()+"/user.db",null);
db=newMyDatabaseHelper(this,"user.db3",null,1);
//初始化組件
initComponents();}//onCreate
四、SQLite數(shù)據(jù)庫 /*
*初始化組件
*/
publicvoidinitComponents()
{
nameTxt=(EditText)findViewById(R.Txt);
pwdTxt=(EditText)findViewById(R.id.pwdTxt);
ageTxt=(EditText)findViewById(R.id.ageTxt);
}//initComponents四、SQLite數(shù)據(jù)庫 /*
*按鈕的點(diǎn)擊事件
*/
publicvoidclickBtn(Viewview){
intid=view.getId();
if(id==R.id.btn1)
{
Stringname=nameTxt.getText().toString();
Stringpwd=pwdTxt.getText().toString();
Stringage=ageTxt.getText().toString();
//保存數(shù)據(jù)
saveInfo(db.getReadableDatabase(),name,pwd,age);}
}//clickBtn四、SQLite數(shù)據(jù)庫publicvoidsaveInfo(SQLiteDatabasedb,Stringname,Stringpwd,Stringage){
//創(chuàng)建SQL語句
Stringinsert="insertintouserinfovalues(null,?,?,?)";
//執(zhí)行SQL語句,其中insertSQL語句中的三個(gè)?問號可由第二個(gè)參數(shù)的object數(shù)組填充代替
db.execSQL(insert,newString[]{name,pwd,age});
Log.i("test","插入數(shù)據(jù)");
//關(guān)閉連接
db.close();}//saveInfo}//End四、SQLite數(shù)據(jù)庫
案例2簡單的圖書信息管理系統(tǒng)。
界面效果如圖4.4:圖4.4四、SQLite數(shù)據(jù)庫(1)?activity_book_list.xml:<RelativeLayoutxmlns:android="/apk/res/android" xmlns:tools="/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin">四、SQLite數(shù)據(jù)庫<ListView android:id="@+id/listview1“ android:layout_width="match_parent" android:layout_height="wrap_content" /></RelativeLayout>(2)?activity_main.xml:<LinearLayoutxmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="match_parent" android:layout_height="match_parent"四、SQLite數(shù)據(jù)庫
android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:orientation="vertical" >
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>四、SQLite數(shù)據(jù)庫<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="圖書編號"/><EditText
android:id="@+id/bookidTxt"
android:layout_width="match_parent" android:layout_height="wrap_content"
/></LinearLayout>四、SQLite數(shù)據(jù)庫<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"><TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="圖書名稱"/><EditText
android:id="@+id/nameTxt"
android:layout_width="match_parent" android:layout_height="wrap_content"/></LinearLayout>四、SQLite數(shù)據(jù)庫<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"><TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="圖書作者"/><EditText
android:id="@+id/authorTxt"
android:layout_width="match_parent" android:layout_height="wrap_content"/></LinearLayout>四、SQLite數(shù)據(jù)庫<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"><TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="圖書價(jià)格"/><EditText
android:id="@+id/priceTxt"
android:layout_width="match_parent" android:layout_height="wrap_content"/></LinearLayout>四、SQLite數(shù)據(jù)庫<Button
android:id="@+id/Btn_insert"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:onClick="clickBtn"
android:text="添加圖書"/>
<Button
android:id="@+id/Btn_delete"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:onClick="clickBtn"
android:text="根據(jù)圖書編號刪除圖書"/>四、SQLite數(shù)據(jù)庫<Button
android:id="@+id/Btn_update"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:onClick="clickBtn"
android:text="根據(jù)圖書編號修改圖書"/><Button
android:id="@+id/Btn_find"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:onClick="clickBtn"
android:text="根據(jù)圖書編號查看圖書"
/>四、SQLite數(shù)據(jù)庫<Button
android:id="@+id/Btn_showlist"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:onClick="clickBtn"
android:text="查看圖書列表"
/></LinearLayout>四、SQLite數(shù)據(jù)庫(3)?Book.java:publicclassBookimplementsParcelable{
publicint_id;
publicStringname;
publicStringauthor;
publicfloatprice;
//Constructor
publicBook(Parcelsource){
//反序列化(反序列化的順序要和序列化的順序一致)
_id=source.readInt();
name=source.readString();
author=source.readString();
price=source.readFloat();}//Constructor四、SQLite數(shù)據(jù)庫publicBook(){}
@Override
publicintdescribeContents(){
return();
}
@Override
publicvoidwriteToParcel(Parceldest,intflags){
//可以對Book對象的屬性一個(gè)一個(gè)的序列化
dest.writeInt(_id);
dest.writeString(name);
dest.writeString(author);
dest.writeFloat(price);
}
四、SQLite數(shù)據(jù)庫//收到數(shù)據(jù)之后可以使用Creator把數(shù)據(jù)反序列化成BookpublicstaticfinalParcelable.CreatorCREATOR=newCreator<Book>(){
@Override
publicBookcreateFromParcel(Parcelsource){
//TODOAuto-generatedmethodstub
returnnewBook(source);
}
@Override
publicBook[]newArray(intsize){
returnnewBook[size];
} };四、SQLite數(shù)據(jù)庫 @Override
publicStringtoString(){
return"【編號="+_id+",書名="+name+",作者="+author +",價(jià)格="+price+"】";
}
}//End四、SQLite數(shù)據(jù)庫(4)?MyDatabaseHelper.java:publicclassMyDatabaseHelperextendsSQLiteOpenHelper{
//創(chuàng)建表的SQL語句
publicfinalStringSQL_CREATE_TABLE="createtable"+BookDao.TABLE_BOOK+"("+BookDao.COL_BOOK_ID+"integerprimarykeyautoincrement," +BookDao.COL_NAME+","+BookDao.COL_AUTHOR ","+BookDao.COL_PRICE+")";
//刪除表SQL語句
publicfinalStringSQL_DROP_TABLE="droptable"+BookDao.TABLE_BOOK;
publicMyDatabaseHelper(Contextcontext,Stringname,
CursorFactoryfactory,intversion){
super(context,name,factory,version);
//TODOAuto-generatedconstructorstub
}//Constructor四、SQLite數(shù)據(jù)庫/**此方法是在應(yīng)用程序第一次運(yùn)行時(shí)自動(dòng)調(diào)用,所以我們可以在這個(gè)方法中創(chuàng)建數(shù)據(jù)庫的表*如果以后再允許程序,此方法將不再執(zhí)行,所以可以保證數(shù)據(jù)庫只創(chuàng)建一次*/
@Override
publicvoidonCreate(SQLiteDatabasedb)
{
//創(chuàng)建表
db.execSQL(SQL_CREATE_TABLE);
}//onCreate四、SQLite數(shù)據(jù)庫/**發(fā)現(xiàn)當(dāng)前執(zhí)行的程序和原有程序版本不一致時(shí),自動(dòng)調(diào)用
*所以在此方法中我們可以將老數(shù)據(jù)更新為新數(shù)據(jù)
*/
@Override
publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion)
{
//刪除原來的表
db.execSQL(SQL_DROP_TABLE);
onCreate(db);
}//onUpgrade}//End四、SQLite數(shù)據(jù)庫(5)?BookDao.java:publicclassBookDao{
//數(shù)據(jù)庫名
publicstaticfinalStringDB_NAME="book.db";
//保存圖書信息的表名
publicstaticfinalStringTABLE_BOOK="bookinfo";
//id的列名
publicstaticfinalString COL_BOOK_ID="_id";
//圖書名稱的列名
publicstaticfinalStringCOL_NAME="name";
//圖書作者的列名
publicstaticfinalStringCOL_AUTHOR="author";
//圖書價(jià)格的列名
publicstaticfinalStringCOL_PRICE="price";
MyDatabaseHelperdbHelper=null;四、SQLite數(shù)據(jù)庫//ConstructorpublicBookDao(Contextcontext){
//創(chuàng)建數(shù)據(jù)庫
dbHelper=newMyDatabaseHelper(context,DB_NAME,null,1);}//Constructor四、SQLite數(shù)據(jù)庫/**關(guān)閉數(shù)據(jù)庫*/publicvoidcloseDB(){
if(dbHelper!=null)
{
dbHelper.close();
dbHelper=null;
}}//closeDB四、SQLite數(shù)據(jù)庫publicvoidinsertBook(Stringname,Stringauthor,floatprice){
//獲得SQLiteDatabase對象
SQLiteDatabasedb=dbHelper.getWritableDatabase();
ContentValuesvalues=newContentValues();
//編輯數(shù)據(jù)
values.put(COL_NAME,name);
values.put(COL_AUTHOR,author);
values.put(COL_PRICE,price);
//插入數(shù)據(jù)
db.insert(TABLE_BOOK,COL_AUTHOR,values);}//insertBook四、SQLite數(shù)據(jù)庫publicBookfindBookById(intid){
Bookbook=newBook();
SQLiteDatabasedb=dbHelper.getWritableDatabase();
Cursorc=db.query(TABLE_BOOK,null,COL_BOOK_ID+"="+id,null,null,null,null);
if(c.moveToNext()){
book._id=c.getInt(c.getColumnIndex(COL_BOOK_ID));
=c.getString(c.getColumnIndex(COL_NAME));
book.author=c.getString(c.getColumnIndex(COL_AUTHOR));
book.price=c.getFloat(c.getColumnIndex(COL_PRICE));
}
returnbook;}//findBookById四、SQLite數(shù)據(jù)庫publicvoidupdateBook(int_id,Stringname,Stringauthor,floatprice){
//獲得SQLiteDatabase對象
SQLiteDatabasedb=dbHelper.getWritableDatabase();
ContentValuesvalues=newContentValues();
//編輯數(shù)據(jù)
values.put(COL_NAME,name);
values.put(COL_AUTHOR,author);
values.put(COL_PRICE,price);
//插入數(shù)據(jù)
Stringwhere=COL_BOOK_ID+"=?";
String[]whereValue={Integer.toString(_id)};
db.update(TABLE_BOOK,values,where,whereValue);}//updateBook四、SQLite數(shù)據(jù)庫/**根據(jù)圖書編號刪除圖書信息*/publicvoiddeleteBookById(intbookid){
SQLiteDatabasedb=dbHelper.getWritableDatabase();
db.delete(TABLE_BOOK,COL_BOOK_ID+"="+bookid,null);}//deleteBookById四、SQLite數(shù)據(jù)庫publicList<Book>getBookList(){
List<Book>bookList=newArrayList<Book>();
SQLiteDatabasedb=dbHelper.getWritableDatabase();
Cursorc=db.query(TABLE_BOOK,null,null,null,null,null,null);
while(c.moveToNext()){
Bookbook=newBook();
book._id=c.getInt(c.getColumnIndex(COL_BOOK_ID));
=c.getString(c.getColumnIndex(COL_NAME));
book.author=c.getString(c.getColumnIndex(COL_AUTHOR));
book.price=c.getFloat(c.getColumnIndex(COL_PRICE));
bookList.add(book);
}
returnbookList;
}//getBookList}//End四、SQLite數(shù)據(jù)庫(6)?BookListActivity.java:publicclassBookListActivityextendsActivity{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_book_list);
//獲得MainActivity傳遞過來的數(shù)據(jù)
Intentintent=this.getIntent();
ArrayList<Book>bookList=intent.getParcelableArrayListExtra("book");
//將bookList轉(zhuǎn)化為List類型
List<String>strList=newArrayList<String>();四、SQLite數(shù)據(jù)庫 for(Bookb:bookList) {
strList.add(b.toString());
Log.i("test","添加一個(gè)成功");
} //填充列表 ListViewlistview=(ListView)findViewById(R.id.listview1); ArrayAdapter<String>adapter=newArrayAdapter<String>(this,android.R.layout.simple_list_item_1,strList); listview.setAdapter(adapter); }//onCreate
}//End四、SQLite數(shù)據(jù)庫(7)?MainActivity.java:publicclassMainActivityextendsActivity{
//定義一些組件
publicEditTextbookidTxt=null;
publicEditTextnameTxt=null;
publicEditTextauthorTxt=null;
publicEditTextpriceTxt=null;
//定義一個(gè)操作數(shù)據(jù)庫的類
BookDaodb=null;四、SQLite數(shù)據(jù)庫@OverrideprotectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化控件
initConponents();
//創(chuàng)建db
db=newBookDao(this);}//onCreate四、SQLite數(shù)據(jù)庫@OverrideprotectedvoidonPause(){
if(db!=null)//判斷db是否為空,不為空則關(guān)閉數(shù)據(jù)庫
{
db.closeDB();
}
super.onPause();}//onPause四、SQLite數(shù)據(jù)庫/**初始化組件*/publicvoidinitConponents(){
bookidTxt=(EditText)findViewById(R.id.bookidTxt);
nameTxt=(EditText)findViewById(R.Txt);
authorTxt=(EditText)findViewById(R.id.authorTxt);
priceTxt=(EditText)findViewById(R.id.priceTxt);}//initConponents四、SQLite數(shù)據(jù)庫publicvoidclickBtn(Viewview){
intid=view.getId();
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024機(jī)械設(shè)備運(yùn)輸合同范本
- 2024有房貸財(cái)產(chǎn)分割離婚協(xié)議書專業(yè)版3篇
- 專業(yè)信托資金借貸協(xié)議范例2024年版
- 2024木材加工廠租賃合同:木材加工與林業(yè)產(chǎn)業(yè)融合合作示范3篇
- 2025年環(huán)保型除塵器安裝與節(jié)能效果評估合同3篇
- 2024年設(shè)計(jì)藝術(shù)作品共用條款3篇
- 小貓萌寵知識培訓(xùn)課件
- 正德職業(yè)技術(shù)學(xué)院《食品微生物檢驗(yàn)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年金融投資委托咨詢居間服務(wù)合同3篇
- 2024年音樂聯(lián)盟:DJ藝人合同范本3篇
- 【云南省中藥材出口現(xiàn)狀、問題及對策11000字(論文)】
- 服裝板房管理制度
- 醫(yī)療技術(shù)臨床應(yīng)用管理檔案(姓名+工號)
- 機(jī)加工工作計(jì)劃安排
- 習(xí)慣性違章培訓(xùn)
- 河北省石家莊市橋西區(qū)2022-2023學(xué)年七年級上學(xué)期期末地理試卷
- 河北省興隆縣盛嘉恒信礦業(yè)有限公司李杖子硅石礦礦山地質(zhì)環(huán)境保護(hù)與治理恢復(fù)方案
- 第七章力與運(yùn)動(dòng)第八章壓強(qiáng)第九章浮力綜合檢測題(一)-2023-2024學(xué)年滬科版物理八年級下學(xué)期
- 《工程造價(jià)管理 第2版》 課件 第一章 工程造價(jià)管理概論
- 中國郵政儲(chǔ)蓄銀行員工違規(guī)行為處理辦法
- 2023年長沙市中考數(shù)學(xué)真題試卷及答案
評論
0/150
提交評論