目录
一.数据库基本概念(理解)
1.数据
2.数据库
二.常用的数据的数据库(了解)
1.大型数据库
2.中型数据库
3.小型数据库
三.基于嵌入式的数据库(了解)
四.SQLite基础(了解)
五.创建数据库(熟练)
1.手工创建
2.代码创建
六.SQLite编程接口
七.代码示例(学生管理系统)
八.水果店铺管理系统
一.数据库基本概念(理解 )
1.数据
能够输入计算机并能够计算机程序识别和处理的信息集合。(不只是数字)
2.数据库
数据库是在数据库管理系统 管理和控制之下,存放在存储介质 上的数据集合。
二.常用的数据的数据库(了解)
1.大型数据库
Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。目前Oracle关系数据库产品的市场占有率名列前茅。 IBM 的DB2是第一个具备网上功能的多媒体关系数据库管理系统,支持包Linux在内的一系列平台。
2.中型数据库
Server是微软开发的数据库产品,主要支持windows平台。
3.小型数据库
mySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司,2008年被Sun公司收购,开放源码。
三.基于嵌入式的数据库(了解)
基于嵌入式Linux的数据库主要有SQLite , Firebird, Berkeley DB, eXtremeDB
Firebird是关系型数据库,功能强大,支持存储过程、SQL兼容等
SQLite关系型数据库,体积小,支持ACID事务
Berkeley DB中并没有数据库服务器的概念,它的程序库直接链接到应用程序中
eXtremeDB是内存数据库,运行效率高
四.SQLite基础(了解)
SQLite的源代码是C,其源代码完全开放。SQLite第一个Alpha版本诞生于2000年5月。 他是一个轻量级的嵌入式数据库。
SQLite有以下特性:
零配置一无需安装和管理配置;
储存在单一磁盘文件中的一个完整的数据库;
数据库文件可以在不同字节顺序的机器间自由共享;
支持数据库大小至2TB;
足够小,全部源码大致3万行c代码,250KB;
比目前流行的大多数数据库对数据的操作要快;
五.创建数据库(熟练)
1.手工创建
使用SQLite3工具,通过手工输入SQL命令行完成数据库创建 . 用户在Linux的命令行界面中输入SQLite3可启动SQLite3工具
数据库的安装
sudo dpkg -i *.deb //本地安装包安装
sudo apt-get install sqlite3 //在线安装
数据库常用命令
(1) 系统命令都以“ . ”开头
.exit //退出
.quit //退出
.table //查看表
.schema //查看表的结构
.help //显示所有命令
.database //显示当前打开的数据库文件
打开数据库文件
在终端下运行sqlite3 <*.db>,出现如下提示符
SQLite version 3.7.2
Enter “.help” for instructions
Enter SQL statements terminated with a “;”
sqlite>
<*.db> 是要打开的数据库文件。若该文件不存在,则自动创建
(2)sql执行语句,都以“ ;”结尾
创建一张表
create table (f1 type1, f2 type2,…);
crerate table stuinfo(id integer ,name char ,age intger,score float);
插入一条记录
insert into values (value1, value2,…);
insert into stuinfo values(1001, 'zhangsan', 18, 80);
insert into stuinfo (id, name, score) values(1002, 'lisi', 90);
查看数据库记录(where后面是条件)
select * from where ;
select * from stuinfo;
select * from stuinfo where score = 80;
select * from stuinfo where score = 80 and name= 'zhangsan';
select * from stuinfo where score = 80 or name='wangwu';
select name,score from stuinfo; 查询指定的字段
select * from stuinfo where score >= 85 and score < 90;
删除一条记录
sqlite>delete from where ;
delete from stuinfo where id=1003 and name='zhangsan';
更新一条记录
sqlite>update set , … where;
update stuinfo set age=20 where id=1003;
update stuinfo set age=30, score = 82 where id=1003;
删除一张表
drop table
drop table stuinfo;
增加一列
alter table add column default …;
alter table stuinfo add column sex char;
删除一列(通过创建新的表来删除)
create table stu as select id, name, score from stuinfo;
drop table stuinfo;
alter table stu rename to stuinfo;
2.代码创建
在程序运行过程中,当需要进行数据库操作时,应用程序会首先尝试打开数据库,此时如果数据库并不存在,程序则会自动建立数据库,然后再打开数据库
六.SQLite编程接口
1.打开(创建)sqlite数据库
int sqlite3_open(char *path, sqlite3 **db);
path:数据库文件路径(数据库名称)
db:指向sqlite句柄的指针
返回值:成功返回0,失败返回错误码(非零值)
2.关闭sqlite数据库
int sqlite3_close(sqlite3 *db);
返回值:成功返回0,失败返回错误码
3.得到错误信息的描述
const char *sqlite3_errmg(sqlite3 *db);
返回值:返回错误信息
4.执行SQL语句操作
Int sqlite3_exec(
sqlite3 *db,
const char *sql,
sqlite3_callback callback,
void *, char **errmsg
);
db:数据库句柄
sql:SQL语句
callback:回调函数
errmsg:错误信息指针的地址
返回值:成功返回0,失败返回错误码
/* Callback function */
功能:查询语句执行之后,会回调此函数
查询回调函数:
int (*callback)(void* arg,int ncolumns ,char** f_value,char** f_name);
参数:arg 接收sqlite3_exec 传递来的参数
ncolumns 列数(记录中包含的字段数目)
f_value 列的值的地址(包含每个字段值的指针数组)
f_name 列的名称(包含每个字段名称的指针数组)
返回值:成功返回0,失败返回-1
5. 不使用回调函数执行SQL操作查询
不使用回调函数执行SQL语句
int sqlite3_get_table(sqlite3 *db, const char *sql, char ***resultp, int*nrow, int *ncolumn, char **errmsg);
db:数据库句柄
sql:SQL语句
resultp:用来指向sql执行结果的指针
nrow:满足条件的记录的数目
ncolumn:每条记录包含的字段数目
errmsg:错误信息指针的地址
返回值:成功返回0,失败返回错误码
七.代码示例(学生管理系统)
管理学生的信息
八.水果店铺管理系统
管理水果种类,重量,价格等信息和信息变动记录
#include
#include
#include
#include
#include
#define DATABASE "fruit.db"
#define TABLES "fruit"
#define N 128
int do_insert(sqlite3 *db,char *buf);
int do_update_weight(sqlite3 *db,char *buf);
int do_update_price(sqlite3 *db);
int do_query(sqlite3 *db);
int callback(void *arg, int f_num, char ** f_value, char ** f_name);
int main(int argc, const char *argv[])
{
sqlite3 *db;
char *errmsg;
int n;
char sql[128] = {};
char buf[128] = {};
time_t t;
struct tm *tp;
if(sqlite3_open(DATABASE, &db) != SQLITE_OK)
{
printf("%s\n", sqlite3_errmsg(db));
return -1;
}
else
{
printf("open DATABASE success.\n");
}
sprintf(sql,"create table if not exists '%s' (id integer primary key autoincrement,name char,weight float,price float,time char);",TABLES);
if(sqlite3_exec(db, sql,NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("%s\n", errmsg);
}
else
{
printf("Create or open table success.\n");
}
time(&t);
tp = localtime(&t);
sprintf(buf,"%d-%02d-%02d %02d:%02d:%02d\n",tp->tm_year+1900, tp->tm_mon+1,tp->tm_mday, tp->tm_hour, tp->tm_min, tp->tm_sec);
printf("%s",buf);
while(1)
{
puts("-----------------------------------------");
do_query(db);
puts("-----------------------------------------");
puts("");
printf("********************************************\n");
printf("1: insert 插入 2:query 查询 3:trade 交易 4:update 更新 5:quit 退出系统\n");
printf("********************************************\n");
printf("Please select:");
scanf("%d", &n);
switch(n)
{
case 1:
do_insert(db,buf);
break;
case 2:
do_query(db);
break;
case 3:
do_update_weight(db,buf);
break;
case 4:
do_update_price(db);
break;
case 5:
printf("main exit.\n");
sqlite3_close(db);
exit(0);
break;
default :
printf("Invalid data n.\n");
}
}
return 0;
}
int do_insert(sqlite3 *db,char *buf)
{
char name[32] = {};
float weight;
float price;
char sql[N] = {};
char *errmsg;
printf("Input fruit name:");
scanf("%s", name);
getchar();
printf("Input weight:");
scanf("%f", &weight);
printf("Input price:");
scanf("%f", &price);
sprintf(sql, "insert into '%s' (name,weight,price,time)values('%s', '%.3f', '%.3f','%s')",TABLES, name, weight, price,buf);
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("%s\n", errmsg);
}
else
{
printf("Insert done.\n");
}
return 0;
}
int do_update_weight(sqlite3 *db,char *buf)
{
int id;
char sql[N] = {};
char *errmsg;
float weight;
printf("Input id:");
scanf("%d", &id);
printf("Input weight:");
scanf("%f", &weight);
sprintf(sql, "update '%s' set weight='%f',time='%s' where id=%d",TABLES, weight,buf,id);
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("%s\n", errmsg);
}
else
{
printf("Delete done.\n");
}
return 0;
}
int do_update_price(sqlite3 *db)
{
float price;
int id;
char sql[N] = {};
char *errmsg;
printf("Input id:");
scanf("%d", &id);
printf("Input alter price:");
scanf("%f", &price);
sprintf(sql, "update '%s' set price='%f' where id=%d",TABLES , price,id);
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("%s\n", errmsg);
}
else
{
printf("update done.\n");
}
return 0;
}
int callback(void *arg, int f_num, char ** f_value, char ** f_name)
{
int i = 0;
for(i = 0; i < f_num; i++)
{
// printf("%-8s %s", f_value[i], f_name[i]);
printf("%-8s", f_value[i]);
}
putchar(10);
puts("-----------------------------------------");
return 0;
}
int do_query(sqlite3 *db)
{
char *errmsg;
char sql[N] = {};
sprintf(sql,"select * from '%s';",TABLES);
if(sqlite3_exec(db, sql, callback,NULL , &errmsg) != SQLITE_OK)
{
printf("%s", errmsg);
}
else
{
printf("select done.\n");
}
return 0;
}
你可能感兴趣的:(数据库,数据库,sqlite,c语言)
C语言中的多线程编程:POSIX线程库(Pthreads)入门与实战(一)
JJJ69
学习C语言吧 开发语言 c语言
目录一、引言背景介绍文章目的与读者定位二、夽线程基础概念线程与进程的关系并发与并行的区别多线程的优势与挑战三、POSIX线程库(Pthreads)简介POSIX标准与Pthreads规范Pthreads的兼容性与移植性总结一、引言背景介绍随着计算机硬件技术的飞速发展,多核处理器已经成为现代计算设备的标准配置。这种架构变革使得单个处理器芯片能够容纳多个执行核心,从而显著提升了并行计算能力。面对这样的
C语言中pthread或Windows API在多线程编程中的基本应用
IAKSH
c语言
文章目录多线程概述掌握多线程需要学习什么?使用pthread.h实现多线程使用WindowsAPI实现多线程使用threads.h实现多线程参考资料警告由于我懒得写完,而且懂的也不是很多,本文不会深入各个多线程库,不会涉及具体的高并发,原子操作等复杂内容,本文仅描述了C语言中多线程技术的基本使用方法~~,适合新人。~~由于threads.h与pthread.h定位冲突且资料较少,我没有对threa
C语言使用pthread多线程编程(windows系统)
安静平和
C/C++ C PThread库 多线程
我们进行多线程编程,可以有多种选择,可以使用WindowsAPI,如果你在使用GTK,也可以使用GTK实现了的线程库,如果你想让你的程序有更多的移植性你最好是选择POSIX中的Pthread函数库,我的程序是在Linux下写的,所以我使用了Pthread库运行之前需要做一些配置:1.下载PTHREAD的WINDOWS开发包pthreads-w32-2-4-0-release.exe(任何一个版本均
在C语言中使用POSIX线程库(pthread)实现多线程编程
杨咩咩ing
c语言 java 开发语言 信息与通信
在现代编程中,多线程技术是一种常见的方式来提高程序性能和响应速度。多线程可以让程序在同一时间执行多个任务,从而更好地利用CPU资源。在C语言中,我们可以使用POSIX线程库(pthread)来创建和管理线程。本文将详细介绍如何在C语言中使用pthread库实现多线程编程。目录什么是线程?什么是POSIX线程(pthread)库?常用的pthread库函数有哪些?1.线程管理函数2.线程同步函数结论
单片机C语言JSON数据处理
憨憨的老郭
软件开发 json 单片机 c语言
一、JSON开发思路最近有个项目使用JSON数据和上位机进行通讯,我将开发历程分享给大家。起初我想用MDK自带的JSON库,编译也没问题,但最后发现该库对编译器有要求,不是很方便,最后我放弃了这条思路,用网上下载的JSONC代码写功能函数,最后所有功能都实现了。所以我强烈推荐大家采用这种开发思路,代码都是用C语言写的,看的见摸不着。二、我对JSON代码的理解2.1关于JSON的格式{ "CMD
MySQL数据库锁、MVCC与事务隔离级别的关系
join_a922
上一篇文章中讲了MySQL的事务隔离级别(mysql数据库事务的隔离级别),有个问题一直困扰了自己很长时间,MySQL的默认事务隔离级别(REPEATBLE-READ)个人理解通过MVCC就可以很好的实现,那MySQL的锁在RR隔离中起了什么作用?这段时间一直在翻查《高性能MySQL》和《MySQL技术内幕:Innodb存储引擎》两本书,有了一个基本的结论,写下来跟大家分享下,理解不到位的地方还请
游戏测试中需求分析的本质
将船买酒白云边
游戏 需求分析 运维 软件工程
游戏测试大不同1.游戏功能模块介绍1.1.登录模块1.2.注册模块1.3.故事情节模块1.4.动画模块1.5.音频模块1.6.结束界面模块1.7.网络模块1.8.数据库模块2.需求文档编写2.1需求的定义2.2需求分类2.3需求分析目标3.测试用例编写3.1测试用例的定义3.2测试用例拆解包含测试用例要素测试用例的作用1.游戏功能模块介绍1.1.登录模块功能描述:登录模块是玩家进入游戏的第一步,用
SpringBoot+Vue疫苗接种管理系统 预约接种疫苗管理系统 疫苗接种查询系统Java
计算机程序老哥
作者主页:计算机毕业设计老哥有问题可以主页问我一、开发介绍1.1开发环境开发语言:Java数据库:MySQL系统架构:B/S后端:SpringBoot(Spring+SpringMVC+Mybatis)前端:Vue工具:IDEA或者Eclipse,JDK1.8,Maven二、系统介绍2.1图片展示注册登录页面:登陆.png前端页面功能:首页、疫苗信息、健康科普、疫苗资讯、个人中心、后台管理、咨询服
Hive3:列注释、表注释等乱码解决方案
生产队队长
HIVE hive
--在Hive的MySQL元数据库中执行usehive;1).修改字段注释字符集altertableCOLUMNS_V2modifycolumnCOMMENTvarchar(256)charactersetutf8;2).修改表注释字符集altertableTABLE_PARAMSmodifycolumnPARAM_VALUEvarchar(4000)charactersetutf8;3).修改分
数据库基本概述
Cyzhouke
一、数据库基础知识1、数据库相关的基本概念1.1、数据描述事物的符号记录称为数据,对数据含义的说明称为数据的语义。1.2、数据库数据库是指长期存储在计算机内的、有组织的、可共享的数据集合。1.3、数据库管理系统数据库管理系统(DBMS)是位于操作系统与用户之间的一层数据管理软件,是数据库系统的核心。DBMS按照一定的数据模型科学地组织和存储数据,能够高效地获取数据,提供安全性和完整性等统一控制机制
Django的Form和ModeForm的作用
ac-er8888
django 数据库 sqlite
Django的Form和ModelForm是Django框架中用于处理表单数据的两个重要组件,它们简化了表单数据的验证、渲染和处理过程。尽管它们都用于处理表单,但它们之间有一些关键的区别和用途。DjangoFormForm是Django中用于处理任何类型数据的表单的基础。它不直接与数据库模型相关联,而是允许你定义表单字段、验证规则和清理数据的方法。这使得Form非常灵活,可以用于处理非模型数据,如
第4章数据库的查询、视图和游标
奔跑在风中的大脑腐
数据库 数据库 大数据
4.1关系运算1.选择选择(selection)是单目运算,其运算对象是一个表。该运算按给定的条件,从表中选出满足条件的行,形成一个新表,作为运算结果。2.投影投影(projection)也是单目运算,其运算对象是一个表。该运算从表中选出指定的属性值组成一个新表。3.连接连接(join)是把表中的行按照给定的条件进行拼接而形成的新表。数据库中最常用的是“自然连接”。进行自然连接时要求两个表有共同属
数据库概论第三章 SQL Server 代码
时叶Shey
SQL 数据库概论 SQL Server
仅供参考建表CREATEDATABASECourseSelection_assignment;USECourseSelection_assignment;CREATESCHEMA"S-T"AUTHORIZATIONdb_accessadmin;CREATETABLE[S-T].Student(SnoCHAR(8)PRIMARYKEY,SnameVARCHAR(20)UNIQUE,SsexCHAR(
MYSQL
消失的年轮
java学习 java mysql 开发语言
文章目录数据库数据库的基本组成部分包括数据库的类型包括数据库技术的发展史SQL的发展史MySQLMySQL的特点包括:RDBMS关系数据库管理系统的特点RDBMS关系数据库管理系统的相关术语MySQL安装Navicat安装MySQL创建数据库的语法MySQL创建表的语法MySQL删除表的语法MySQL插入数据的语法MySQLSELECT子句的语法--查询MySQLWHERE子句的语法--条件查询M
缓存与数据库的数据一致性解决方案分析
Do&Feel
Java 缓存 数据库 java
在现代应用中,缓存技术的使用广泛且至关重要,主要是为了提高数据访问速度和优化系统整体性能。缓存通过在内存或更快速的存储系统中存储经常访问的数据副本,使得数据检索变得迅速,从而避免了每次请求都需要从较慢的主存储(如硬盘或远程数据库)中读取数据的延迟。这种技术特别适用于读取操作远多于写入操作的场景,如网页浏览、内容分发网络(CDN)和大规模的信息检索系统等。缓存的实现方式多样,包括但不限于内存缓存、分
FrameNet介绍——从同义词语义知识库到框架语义知识库
禾风wyh
语义通信 语义知识库
FrameNet是一个为期三年的项目,获得了NSF(美国国家科学基金会)的支持,专注于基于语料库的计算词典编纂。项目特点FrameNet承诺使用语料库证据(corpusevidence)来进行语义和句法的概括;并对目标词(主要是名词、形容词和动词)的搭配方式进行表示,其中语义部分使用了框架语义学。最终的数据库将包含所描述词语的语义框架描述,以及几千个词语和短语的搭配表示(语义和句法),每个词语或短
C语言学习记录(三)
Tian Sifan
C语言 学习
我们紧接上篇的内容,上节我们提到了数据类型以及一些运算符,这节我决定给大家分享一下顺序结构,让大家更加深入理解、以及能达到自己运用运算符完成一些与顺序结构相关的简单的题目。一.顺序结构顺序结构是三大基础结构中最简单也是最容易的,其实现方式为从上至下依次进行,不需要进行任何判断,它是由一系列按特定顺序执行的操作组成,每个操作完成后才会执行下一个操作,这种执行过程就像按照任务列表逐项完成一样,依照线性
MySQL 数据类型详解
拾木200
mysql 数据库
MySQL是一种广泛使用的关系型数据库管理系统,它支持多种数据类型以满足各种应用场景的需求。本文将详细介绍MySQL支持的数据类型、它们的使用场景以及实现原理,并通过图示帮助读者更直观地理解。目录简介数值类型整型浮点型定点型日期和时间类型字符串类型字符串二进制字符串空间数据类型JSON数据类型枚举和集合类型总结简介MySQL支持多种数据类型,分为数值类型、日期和时间类型、字符串类型、空间数据类型、
常见的实时数仓方案
北极冰雨
大数据 大数据
常见的实时数仓架构有三种。第一种是Lambda架构,是目前主流的一套实时数仓架构,存在离线和实时两条链路。实时部分以消息队列的方式实时增量消费,一般以Flink+Kafka的组合实现,维度表存在关系型数据库或者HBase;离线部分一般采用T+1周期调度分析历史存量数据,每天凌晨产出,更新覆盖前一天的结果数据,计算引擎通常会选择Hive或者Spark。优点是数据准确度高,不易出错;缺点是架构复杂,运
php连接mysql数据库
Daly罗
笔记心得 mysql php 数据库 query sql border
php和mysql,比较容易出现的中文乱码,没有办法详说各种编码的异同,简单而实用的处理办法是:在查询之前插入:mysql_query("setnamesgbk");其中gbk也可以改成其他中文字符集。(似乎比较难以在同一的类中调用,大概是和具体的查询前有时候涉及数据库的选择有关?)而且,在数据库导出,导入之前也最好插入这条语句,保持字符的一致性(否则,在数据库中也可能出现乱码)。04级新生名单I
c语言sprintf函数 long,基于C语言sprintf函数的深入理解
龙承号
c语言sprintf函数 long
printf可能是许多程序员在开始学习C语言时接触到的第二个函数(我猜第一个是main),说起来,自然是老朋友了,可是,你对这个老朋友了解多吗?你对它的那个孪生兄弟sprintf了解多吗?在将各种类型的数据构造成字符串时,sprintf的强大功能很少会让你失望。由于sprintf跟printf在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致spri
【ElasticSearch】logstash-conf文件mysql多数据源配置
日月星宿~
应用 elasticsearch
logstash-conf文件mysql多数据源导入es配置说明#inputplugin输入插件,接收事件源input{jdbc{#定义类型_1type=>"type_1"#mysql的ip、端口以及用到的数据库名jdbc_connection_string=>"jdbc:mysql://localhost:3306/数据库名"#mysql用户名jdbc_user=>""#mysql密码jdbc_
linux系统编程:数据库
ヾ(´∀`。ヾ)307
数据库
1.数组、链表、变量-----》内存:程序运行结束、掉电数据丢失文件----------------------》硬盘:程序运行结束、掉电数据不丢失数据库:专业存储数据、大量数据-----》硬盘sqlite相关的命令.tables查看数据库中的表.headerson/off开启或者关闭表头.modecolumn列对齐.width列宽1列宽2设置每一列的列宽.schema表名查看表的结构sqlite
在Ubuntu 18.04上如何从默认的APT仓库安装MongoDB
白如意i
linux ubuntu mongodb linux
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。介绍MongoDB,也被称为Mongo,是一种常用于现代Web应用程序的免费开源NoSQL文档数据库。在本教程中,您将安装MongoDB,管理其服务,并可选择启用远程访问。先决条件要按照本教程操作,您需要:一个Ubuntu18.04服务器,按照此初始服务器设置教程进行设置,包括一个sudo非根用户和防
配置ospf单区域
救救我救救我救救我。
网络
介绍OSPF是一种基于链路状态的路由协议,可以将链路视为路由器的接口。链路状态是对接口及接口与相邻路由器的关系的描述。例如接口的信息包括接口的IP地址、掩码、所连接的网络的类型、连接的邻居等。所有这些链路状态的集合形成链路状态数据库。OSPF共有8种状态机,分别是:Down、Attempt、Init、2-way、Exstart、Exchange、Loading、Full。Down:邻居会话的初始阶
Peewee:是简化Python数据库瑞士军刀
Python_P叔
python 算法 开发语言
Peewee:Python开发者的数据库交互神器,你准备好了吗?"什么是PythonPeewee的库Peewee是一个轻量级的Python对象关系映射(ORM)库,用于在Python应用程序中与数据库进行交互.它提供了易于使用的API,使得在Python中执行数据库操作变得更加简单和高效.Peewee支持多种数据库后端,例如SQLite、MySQL、PostgreSQL等,使开发人员能够轻松地切换
C语言文件相关函数
Beginner_bml
开发语言 c语言
目录一、引言二、文件函数概述1.文件类型指针2.常用文件函数三、文件函数使用详解1.打开文件2.关闭文件3.写入文件4.读取文件5.二进制文件操作四、实战应用五、总结本文将详细介绍C语言中文件函数的基本概念、常用函数及其使用方法,并通过实例讲解如何在实际项目中应用文件函数进行数据的读写操作。掌握这些知识,将有助于提高C语言编程能力,为后续的项目开发奠定基础。一、引言在C语言编程中,文件操作是不可或
设计模式专题之C语言-原型模式
甜航一直在
设计模式 设计模式 c语言 原型模式 笔记
这里写目录标题1.简介2.通俗讲解3.实战3.1.代码3.2.代码解析3.3.代码运行3.4.结果分析4.总结1.简介原型模式(PrototypePattern)是一种创建型设计模式,它允许一个对象通过复制现有的对象来创建新对象,而不是通过new关键字创建新对象。这种模式可以提高性能和复用性,特别是在创建新对象需要复杂的初始化或者资源密集型操作时。2.通俗讲解假设你是一位玩具制造商,你正在制作两种
C语言程序设计-扫雷游戏
元气代码鼠
游戏
愿你我成功会师,翻过雪山,走过草地,不远万里。扫雷游戏game.h#pragmaonce#include#include#include#defineROW9#defineCOL9#defineROWSROW+2#defineCOLSCOL+2#defineEASY_COUNT10voidInitBoard(charboard[ROWS][COLS],introws,intcols,charset
蓝易云 - C语言循环控制语句的应用与讲解。
蓝易云
c语言 java 算法 数据库 前端 spring mvc
在C语言中,循环控制语句是一类用于控制程序执行流程的结构,它们使得程序可以重复执行某段代码块直到满足某个条件。主要的循环控制语句包括for循环、while循环和do...while循环。for循环for循环是一种高度结构化的循环,提供了一个清晰的循环执行的开始和结束方式。它往往在循环次数已知的情况下使用。for循环语法如下:for(初始化表达式;循环条件表达式;更新表达式){//循环体代码}初始化
继之前的线程循环加到窗口中运行
3213213333332132
java thread JFrame JPanel
之前写了有关java线程的循环执行和结束,因为想制作成exe文件,想把执行的效果加到窗口上,所以就结合了JFrame和JPanel写了这个程序,这里直接贴出代码,在窗口上运行的效果下面有附图。
package thread;
import java.awt.Graphics;
import java.text.SimpleDateFormat;
import java.util
linux 常用命令
BlueSkator
linux 命令
1.grep
相信这个命令可以说是大家最常用的命令之一了。尤其是查询生产环境的日志,这个命令绝对是必不可少的。
但之前总是习惯于使用 (grep -n 关键字 文件名 )查出关键字以及该关键字所在的行数,然后再用 (sed -n '100,200p' 文件名),去查出该关键字之后的日志内容。
但其实还有更简便的办法,就是用(grep -B n、-A n、-C n 关键
php heredoc原文档和nowdoc语法
dcj3sjt126com
PHP heredoc nowdoc
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Current To-Do List</title>
</head>
<body>
<?
overflow的属性
周华华
JavaScript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
《我所了解的Java》——总体目录
g21121
java
准备用一年左右时间写一个系列的文章《我所了解的Java》,目录及内容会不断完善及调整。
在编写相关内容时难免出现笔误、代码无法执行、名词理解错误等,请大家及时指出,我会第一时间更正。
&n
[简单]docx4j常用方法小结
53873039oycg
docx
本代码基于docx4j-3.2.0,在office word 2007上测试通过。代码如下:
import java.io.File;
import java.io.FileInputStream;
import ja
Spring配置学习
云端月影
spring配置
首先来看一个标准的Spring配置文件 applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi=&q
Java新手入门的30个基本概念三
aijuans
java 新手 java 入门
17.Java中的每一个类都是从Object类扩展而来的。 18.object类中的equal和toString方法。 equal用于测试一个对象是否同另一个对象相等。 toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示.(toString 方法是一个很重要的方法) 19.通用编程:任何类类型的所有值都可以同object类性的变量来代替。
《2008 IBM Rational 软件开发高峰论坛会议》小记
antonyup_2006
软件测试 敏捷开发 项目管理 IBM 活动
我一直想写些总结,用于交流和备忘,然都没提笔,今以一篇参加活动的感受小记开个头,呵呵!
其实参加《2008 IBM Rational 软件开发高峰论坛会议》是9月4号,那天刚好调休.但接着项目颇为忙,所以今天在中秋佳节的假期里整理了下.
参加这次活动是一个朋友给的一个邀请书,才知道有这样的一个活动,虽然现在项目暂时没用到IBM的解决方案,但觉的参与这样一个活动可以拓宽下视野和相关知识.
PL/SQL的过程编程,异常,声明变量,PL/SQL块
百合不是茶
PL/SQL的过程编程 异常 PL/SQL块 声明变量
PL/SQL;
过程;
符号;
变量;
PL/SQL块;
输出;
异常;
PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言PL/SQL 是对 SQL 的扩展,sql的执行时每次都要写操作
Mockito(三)--完整功能介绍
bijian1013
持续集成 mockito 单元测试
mockito官网:http://code.google.com/p/mockito/,打开documentation可以看到官方最新的文档资料。
一.使用mockito验证行为
//首先要import Mockito
import static org.mockito.Mockito.*;
//mo
精通Oracle10编程SQL(8)使用复合数据类型
bijian1013
oracle 数据库 plsql
/*
*使用复合数据类型
*/
--PL/SQL记录
--定义PL/SQL记录
--自定义PL/SQL记录
DECLARE
TYPE emp_record_type IS RECORD(
name emp.ename%TYPE,
salary emp.sal%TYPE,
dno emp.deptno%TYPE
);
emp_
【Linux常用命令一】grep命令
bit1129
Linux常用命令
grep命令格式
grep [option] pattern [file-list]
grep命令用于在指定的文件(一个或者多个,file-list)中查找包含模式串(pattern)的行,[option]用于控制grep命令的查找方式。
pattern可以是普通字符串,也可以是正则表达式,当查找的字符串包含正则表达式字符或者特
mybatis3入门学习笔记
白糖_
sql ibatis qq jdbc 配置管理
MyBatis 的前身就是iBatis,是一个数据持久层(ORM)框架。 MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis对JDBC进行了一次很浅的封装。
以前也学过iBatis,因为MyBatis是iBatis的升级版本,最初以为改动应该不大,实际结果是MyBatis对配置文件进行了一些大的改动,使整个框架更加方便人性化。
Linux 命令神器:lsof 入门
ronin47
lsof
lsof是系统管理/安全的尤伯工具。我大多数时候用它来从系统获得与网络连接相关的信息,但那只是这个强大而又鲜为人知的应用的第一步。将这个工具称之为lsof真实名副其实,因为它是指“列出打开文件(lists openfiles)”。而有一点要切记,在Unix中一切(包括网络套接口)都是文件。
有趣的是,lsof也是有着最多
java实现两个大数相加,可能存在溢出。
bylijinnan
java实现
import java.math.BigInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class BigIntegerAddition {
/**
* 题目:java实现两个大数相加,可能存在溢出。
* 如123456789 + 987654321
Kettle学习资料分享,附大神用Kettle的一套流程完成对整个数据库迁移方法
Kai_Ge
Kettle
Kettle学习资料分享
Kettle 3.2 使用说明书
目录
概述..........................................................................................................................................7
1.Kettle 资源库管
[货币与金融]钢之炼金术士
comsci
金融
自古以来,都有一些人在从事炼金术的工作.........但是很少有成功的
那么随着人类在理论物理和工程物理上面取得的一些突破性进展......
炼金术这个古老
Toast原来也可以多样化
dai_lm
android toast
Style 1: 默认
Toast def = Toast.makeText(this, "default", Toast.LENGTH_SHORT);
def.show();
Style 2: 顶部显示
Toast top = Toast.makeText(this, "top", Toast.LENGTH_SHORT);
t
java数据计算的几种解决方法3
datamachine
java hadoop ibatis r-langue r
4、iBatis
简单敏捷因此强大的数据计算层。和Hibernate不同,它鼓励写SQL,所以学习成本最低。同时它用最小的代价实现了计算脚本和JAVA代码的解耦,只用20%的代价就实现了hibernate 80%的功能,没实现的20%是计算脚本和数据库的解耦。
复杂计算环境是它的弱项,比如:分布式计算、复杂计算、非数据
向网页中插入透明Flash的方法和技巧
dcj3sjt126com
html Web Flash
将
Flash 作品插入网页的时候,我们有时候会需要将它设为透明,有时候我们需要在Flash的背面插入一些漂亮的图片,搭配出漂亮的效果……下面我们介绍一些将Flash插入网页中的一些透明的设置技巧。
一、Swf透明、无坐标控制 首先教大家最简单的插入Flash的代码,透明,无坐标控制: 注意wmode="transparent"是控制Flash是否透明
ios UICollectionView的使用
dcj3sjt126com
UICollectionView的使用有两种方法,一种是继承UICollectionViewController,这个Controller会自带一个UICollectionView;另外一种是作为一个视图放在普通的UIViewController里面。
个人更喜欢第二种。下面采用第二种方式简单介绍一下UICollectionView的使用。
1.UIViewController实现委托,代码如
Eos平台java公共逻辑
蕃薯耀
Eos平台java公共逻辑 Eos平台 java公共逻辑
Eos平台java公共逻辑
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月1日 17:20:4
SpringMVC4零配置--Web上下文配置【MvcConfig】
hanqunfeng
springmvc4
与SpringSecurity的配置类似,spring同样为我们提供了一个实现类WebMvcConfigurationSupport和一个注解@EnableWebMvc以帮助我们减少bean的声明。
applicationContext-MvcConfig.xml
<!-- 启用注解,并定义组件查找规则 ,mvc层只负责扫描@Controller -->
<
解决ie和其他浏览器poi下载excel文件名乱码
jackyrong
Excel
使用poi,做传统的excel导出,然后想在浏览器中,让用户选择另存为,保存用户下载的xls文件,这个时候,可能的是在ie下出现乱码(ie,9,10,11),但在firefox,chrome下没乱码,
因此必须综合判断,编写一个工具类:
/**
*
* @Title: pro
挥洒泪水的青春
lampcy
编程 生活 程序员
2015年2月28日,我辞职了,离开了相处一年的触控,转过身--挥洒掉泪水,毅然来到了兄弟连,背负着许多的不解、质疑——”你一个零基础、脑子又不聪明的人,还敢跨行业,选择Unity3D?“,”真是不自量力••••••“,”真是初生牛犊不怕虎•••••“,••••••我只是淡淡一笑,拎着行李----坐上了通向挥洒泪水的青春之地——兄弟连!
这就是我青春的分割线,不后悔,只会去用泪水浇灌——已经来到
稳增长之中国股市两点意见-----严控做空,建立涨跌停版停牌重组机制
nannan408
对于股市,我们国家的监管还是有点拼的,但始终拼不过飞流直下的恐慌,为什么呢?
笔者首先支持股市的监管。对于股市越管越荡的现象,笔者认为首先是做空力量超过了股市自身的升力,并且对于跌停停牌重组的快速反应还没建立好,上市公司对于股价下跌没有很好的利好支撑。
我们来看美国和香港是怎么应对股灾的。美国是靠禁止重要股票做空,在
动态设置iframe高度(iframe高度自适应)
Rainbow702
JavaScript iframe contentDocument 高度自适应 局部刷新
如果需要对画面中的部分区域作局部刷新,大家可能都会想到使用ajax。
但有些情况下,须使用在页面中嵌入一个iframe来作局部刷新。
对于使用iframe的情况,发现有一个问题,就是iframe中的页面的高度可能会很高,但是外面页面并不会被iframe内部页面给撑开,如下面的结构:
<div id="content">
<div id=&quo
用Rapael做图表
tntxia
rap
function drawReport(paper,attr,data){
var width = attr.width;
var height = attr.height;
var max = 0;
&nbs
HTML5 bootstrap2网页兼容(支持IE10以下)
xiaoluode
html5 bootstrap
<!DOCTYPE html>
<html>
<head lang="zh-CN">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">