模拟数据库
❶ 如何使用多线程模拟数据库的并发
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语言)输入输出流模拟数据库
我不会做前端