模擬資料庫
❶ 如何使用多線程模擬資料庫的並發
public static Connection getConnectionFromThreadLocal() {
Connection conn = connectionHolder.get();
try {
if (conn == null || conn.isClosed()) {
Connection con = ConnnectionManager.getConnection();
connectionHolder.set(con);
System.out.println("[Thread]" + Thread.currentThread().getName());
return con;
}
return conn;
} catch (Exception e) {
❷ C++中怎麼用txt文件模擬資料庫
將這個登錄表文件,用一條鏈表來管理,實現功能:
boolchk_people(stringid);
boolchk_people(stringid,stringpwd);
booladd_people(stringid,stringpwd);
booldel_people(stringid);
boolread_file(stringfilename);
boolwrite_file(stringfilename);
鏈表中的數據可以手動添加幾個,也可以從文件讀入,總之先初始化鏈表,然後讓用戶操作。
每一次將用戶的操作都先保存在鏈表裡,在用戶退出時就把鏈表中的數據全部寫入到外部文件,將文件覆蓋就行了,以後讀入時就是新的內容了。
答應過你,把源碼貼上來,調試運行過,得到預期結果
#include<iostream>
#include<fstream>
#include<string>
usingnamespacestd;
structguest{
stringid;
stringpwd;
guest(stringi,stringp):id(i),pwd(p){next=NULL;}
guest*next;
};
classguest_mgr{
private:
guest*head;
public:
guest_mgr();
boolchk_people(stringid);
boolchk_people(stringid,stringpwd);
booladd_people(stringid,stringpwd);
booldel_people(stringid);
boolread_file(stringfilename);
boolwrite_file(stringfilename);
voidprint_people();
~guest_mgr();
};
guest_mgr::guest_mgr(){
head=newguest("admin","123");
head->next=NULL;
}
boolguest_mgr::read_file(stringfilename){
ifstreaminobj(filename.c_str());
if(!inobj){
cout<<"openfilefailed. ";
returnfalse;
}
guest*t,*p;
stringsid,spwd;
p=head;
while(!inobj.eof()){
inobj>>sid>>spwd;
t=newguest(sid,spwd);
p->next=t;
p=t;
}
t->next=NULL;
returntrue;
}
boolguest_mgr::write_file(stringfilename){
ofstreamoutobj(filename.c_str());
if(!outobj){
cout<<"fileopenfailed.";
returnfalse;
}
guest*p=head;
while(NULL!=p){
outobj<<p->id<<""<<p->pwd<<" ";
p=p->next;
}
returntrue;
}
boolguest_mgr::add_people(stringid,stringpwd){
if(NULL==head)
returnfalse;
guest*p=head;
while(NULL!=p->next){
p=p->next;
}
guest*newguest=newguest(id,pwd);
p->next=newguest;
newguest->next=NULL;
returntrue;
}
boolguest_mgr::chk_people(stringid){
if(NULL==head)
returnfalse;
guest*p=head;
while(NULL!=p->next&&id!=p->id){
p=p->next;
}
if(NULL!=p->next){
returntrue;
}
elseif(NULL==p->next&&id==p->id)
returntrue;
returnfalse;
}
boolguest_mgr::chk_people(stringid,stringpwd){
if(NULL==head)
returnfalse;
guest*p=head;
while(NULL!=p->next&&id!=p->id){
p=p->next;
}
if(NULL!=p->next){
if(pwd==p->pwd)
returntrue;
}
elseif(NULL==p->next&&id==p->id)
if(pwd==p->pwd)
returntrue;
returnfalse;
}
boolguest_mgr::del_people(stringid){
if(chk_people(id)){
guest*p=head;
guest*pre=p;
while(NULL!=p->next&&id!=p->id){
pre=p;
p=p->next;
}
if(NULL!=p->next){
pre->next=p->next;
deletep;
returntrue;
}
elseif(NULL==p->next&&id==p->id){
if(p!=head){
pre->next=NULL;
deletep;
returntrue;
}
}
}
returnfalse;
}
voidguest_mgr::print_people(){
if(NULL==head){
cout<<"noguestinthelist. ";
return;
}
guest*p=head;
while(NULL!=p){
cout<<p->id<<""<<p->pwd<<" ";
p=p->next;
}
cout<<endl;
}
///////////////////////////////菜單//////////////////////////////
guest_mgr*mylist;//在菜單函數中要用到,不要移動它
stringfn="data.txt";//同上
voidlogin(){
cout<<" -------------------Login---------------------- ";
stringid,pwd;
cout<<"ID:";
cin>>id;
if(mylist->chk_people(id)){
cout<<" Password:";
cin>>pwd;
if(mylist->chk_people(id,pwd)){
cout<<" loginsuccessful. ";
}
else{
cout<<"sorry,yourpasswordiswrong. ";
}
}
else{
cout<<"theidisnotexsit. ";
}
cout<<" -------------------Login---------------------- ";
}
voidadd(){
cout<<" -------------------AddGuest---------------------- ";
stringid,pwd;
cout<<"ID:";
cin>>id;
cout<<" Password:";
cin>>pwd;
if(mylist->add_people(id,pwd)){
cout<<" addguestsuccessful. ";
}
else{
cout<<"sorry,thesystemiswrong. ";
}
cout<<" -------------------AddGuest---------------------- ";
}
voiddel(){
cout<<" -----------------DeleteGuest-------------------- ";
stringid;
cout<<"ID:";
cin>>id;
if(mylist->chk_people(id)){
charc;
cout<<""<<id<<".(Y/N)"<<endl;
cin>>c;
if(c=='y'||c=='Y'){
if(mylist->del_people(id))
cout<<"deleteguestsuccessful. ";
else
cout<<"sorry,thesystemiswrong. ";
}
}
else{
cout<<" sorry,theguest"<<id<<"isnotexsit. ";
}
cout<<" -----------------DeleteGuest-------------------- ";
}
voidmenu(){
intc;
cout<<" ****************************MainMenu**************************** ";
cout<<"1.登錄 2.添加用戶 3.刪除用戶 4.列印用戶清單 5.退出";
cout<<" ****************************MainMenu**************************** ";
cin>>c;
switch(c){
case1:login();break;
case2:add();break;
case3:del();break;
case4:mylist->print_people();break;
default:mylist->write_file(fn);exit(0);
}
}
voidmain(){
mylist=newguest_mgr();
mylist->read_file(fn);
while(1)
menu();
cout<<endl;
}
❸ 誰有sql-SERVER 和其他的資料庫模擬器
如果只是學習 SQL Server 的話, 去下載個 SQL Server Express 版的, 不大的。
http://msdn.microsoft.com/zh-cn/express/bb410792.aspx
如果只是要簡單的學學 資料庫的話, 找個 Access 或者 Foxpro 什麼的,都可以簡單的學學。
學資料庫不像 學網路管理什麼的。
你要考 CCNA 什麼的, 你要是沒模擬器,自己買路由器/交換機什麼的,那是吃不消。
學資料庫的話,如果你電腦不是太差的話,直接安裝就可以了。
當然了,如果你的操作系統是 XP, 但是要安裝 SQL Server 企業版什麼的,估計是有難度了。
❹ java編寫資料庫(希望用JAVA中的位元組流來模擬一個資料庫,並且可以實現查找功能)
如過只針對很少的幾個對象其實很好實現的 將對象以一定的格式轉換成字元串 再用IO寫到文件 取出對象 先將存在文件里的位元組讀出來轉換成字元串 用 split拆分 組裝成對象就行 這樣實現查找有2種方式啦 1 把文件中的數據全取出來 封裝成相應的對象的LIST 然後遍歷LIST 查詢2 讀一次 組裝成對象 去比對
❺ 請問有學生模擬資料的資料庫(access)嗎
可以自己編一個啊。隨便寫點,不影響程序調試的啊。
❻ 模擬資料庫管理系統
根據你說的,至少要有詞法、語義分析器,首先分析出SQL語句的意思。
另外,TXT文件中的記錄也要規范,比如
學號|姓名|性別|分數
每行一個記錄,欄位之間用一個特殊符號分開。
你可以看看SQLite系統的源碼,它是一個C語言編寫的嵌入式資料庫,非常小,只有幾萬行代碼。
❼ java:用(Java語言)輸入輸出流模擬資料庫
嗯,好的,做出來就發你郵箱!
❽ 如何導出模擬器中的資料庫文件
首先找到android 模擬中資料庫存放的位置
file explorer 文件data 裡面的data文件夾里
選擇右上的導出-- 導出到指定的路徑下面
接下來 打開資料庫 android中使用 的是sqlite 資料庫, 可以用Sqlite expert Professional 這個軟體來打開 ,首先下載好sep 這個軟體
選擇打開的文件-- 選擇我們剛才導出的資料庫 就可以看到 資料庫中的內容!
❾ 求助,SQL資料庫的模擬數據。
51aspx源網站
❿ 急!!用(Java語言)輸入輸出流模擬資料庫
我不會做前端