如何对字典表进行增删改查查

怎样运用c++实现增删改查功能
想设计一个餐厅管理系统程序,如何运用C++语言实现菜单和座位的增删改查功能?
10-01-24 &匿名提问
二级考试可以选考的语种有: Visual BASIC Visual FoxPro C语言 Visual C++ Digital Visual FORTRAN Java等 考核使用一种语言进行编程和上机调试、运行的能力。 考试形式与具体内容 一、笔试60分,其中计算机基础知识20分,程序设计40分。 基本题型为选择题和填空题。 二、上机考试40分,内容为程序设计。 题型有程序改错和编程设计题等。 学会计的,最好报vf
请登录后再发表评论!如何进行增删改查_百度知道
如何进行增删改查
return -1;
cmd.Open();
{ using S using System,可以写一个包含增删改的一个类函数(如下所示);Server = 127;
catch (Exception ex)
return -1; private set.Connection = connection.Message);
cmd.Linq.ExecuteScalar();数据库连接字符串
private static string connectionString = &quot.W数据库连接Connection对象
public static SqlConnection connection = new SqlConnection(connectionString).Show(
cmd.Connection.Show(
&#47,要用的时候直接调用 mandText = mandText =
#endregion
#region 对Select语句,返回int型结果集
public static int GetSqlResult(string sql)
cmd = new SqlCommand().C
private static SqlDataReader dr = mandText = sql.ExecuteNonQuery().Open().ExecuteReader().Show(ex.Message).1.D using S
SqlCommand sqlCmd = new SqlCommand().Close();
cmd.Connection.F
#endregion
#region 对U
cmd.Connection = }
SqlConnection sqlCnn = new SqlConnection();.0;
cmd.Connection,返回该命令所影响的行数
public static int GetDsqlResult(string sql)
cmd = new SqlCommand(); using System.SqlC
&#47,Insert和Delete语句.T
public int RowCount { get.Connection = connection.Open();
int a = (int)
public DBHelper()
#region 返回结果集
public static SqlDataReader GetResult(string sql)
cmd = new SqlCommand();
using System.C Database = DB;
cmd.Collections.NET.Message);
catch (Exception ex)
MessageBox.0;/ Integrated Security =SSPI&quot.D/
namespace Load {
class DBHelper
private static SqlCommand cmd =
catch (Exception ex)
MessageBox.Close()通过ADO
知道智能回答机器人
我是知道站内的人工智能,可高效智能地为您解答问题。很高兴为您服务。
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Java连接本地MySQL数据库进行增删改查操作 - 推酷
Java连接本地MySQL数据库进行增删改查操作
import java.sql.C
import java.sql.DriverM
import java.sql.PreparedS
import java.sql.ResultS
import java.sql.SQLE
import java.sql.S
import entity.UserI
public class JDBC {
* 写一个连接数据库的方法
public Connection getConnection(){
String url=&jdbc:mysql://localhost:端口/数据库&;
String userName=&root&;
String password=&密码&;
Class.forName(&com.mysql.jdbc.Driver&);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.println(&找不到驱动!&);
e.printStackTrace();
conn=DriverManager.getConnection(url, userName, password);
if(conn!=null){
System.out.println(&connection successful&);
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println( &connection fail&);
e.printStackTrace();
* 写一个查询数据库语句的方法
public void QuerySql(){
//1、执行静态SQL语句。通常通过Statement实例实现。
// 2、执行动态SQL语句。通常通过PreparedStatement实例实现。
// 3、执行数据库存储过程。通常通过CallableStatement实例实现。
System.out.println(&query&);
j.Connection();
String sql=&select * from userInfo&;
conn=getConnection();//连接数据库
ps=conn.prepareStatement(sql);// 2.创建Satement并设置参数
rs=ps.executeQuery(sql);
// 3.?执行SQL语句
// 4.处理结果集
while(rs.next()){
u=new UserInfo();
u.setUserId(rs.getInt(&userId&));
u.setUserName(rs.getString(&userName&));
u.setPassword(rs.getString(&password&));
u.setRemark(rs.getString(&remark&));
System.out.println(&uesrName&+u.getUserName());
System.out.println(rs.next());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
//释放资源
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
@SuppressWarnings(&null&)
public int add(UserInfo user){
UserInfo u =new UserInfo();
int row=0;
j.Connection();
String sql=&insert into userInfo(userName,password) values(?,?)&;
conn=getConnection();//连接数据库
ps=conn.prepareStatement(sql);// 2.创建Satement并设置参数
rs=ps.executeQuery();
// 3.?执行SQL语句,緊緊用于查找語句
//sql語句中寫了幾個字段,下面就必須要有幾個字段
ps.setString(1, user.getUserName());
ps.setString(2, user.getPassword());
// 4.处理结果集
row=ps.executeUpdate();
System.out.println(row+user.getUserName()+user.getPassword());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
ps.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
* @return修改数据
public int update(UserInfo user){
int row=0;
j.Connection();
String sql=&update userInfo set userName=?,password=? where userId=?&;
conn=getConnection();//连接数据库
ps=conn.prepareStatement(sql);// 2.创建Satement并设置参数
rs=ps.executeQuery(sql);
// 3.?执行SQL语句,緊緊用于查找語句
//sql語句中寫了幾個字段,下面就必須要有幾個字段
ps.setString(1, user.getUserName());
ps.setString(2, user.getPassword());
ps.setInt(3, user.getUserId());
// 4.处理结果集
row=ps.executeUpdate();
System.out.println(row);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
//释放资源
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
* @return删除操作
public int delete(UserInfo user){
int row=0;
j.Connection();
String sql=&delete from userInfo where userId=?&;
conn=getConnection();//连接数据库
ps=conn.prepareStatement(sql);// 2.创建Satement并设置参数
rs=ps.executeQuery(sql);
// 3.?执行SQL语句,緊緊用于查找語句
//sql語句中寫了幾個字段,下面就必須要有幾個字段
ps.setInt(1, user.getUserId());
// 4.处理结果集
row=ps.executeUpdate();
System.out.println(row);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
//释放资源【執行完sql要記得釋放資源】
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
public static void main(String[] args) {
JDBC j=new JDBC();
j.getConnection();
j.QuerySql();//在控制台顯示出查找方法
UserInfo u=new UserInfo();
u.setUserId(5);
u.setUserName(&cool&);
u.setPassword(&123abc&);
j.update(u);////在控制台顯示出修改方法
已发表评论数()
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
没有分页内容
图片无法显示
视频无法显示
与原文不一致怎样操作leveldb数据库,实现增删改查?
按投票排序
/infodetail-411090.html 摘录一段给你
LevelDB 简介一、LevelDB入门LevelDB是Google开源的持久化KV单机数据库,具有很高的随机写,顺序读/写性能,但是随机读的性能很一般,也就是说,LevelDB很适合应用在查询较少,而写很多的场景。LevelDB应用了LSM (Log Structured Merge) 策略,lsm_tree对索引变更进行延迟及批量处理,并通过一种类似于归并排序的方式高效地将更新迁移到磁盘,降低索引插入开销,关于LSM,本文在后面也会简单提及。根据LevelDB官方网站的描述,LevelDB的特点和限制如下:特点:1、key和value都是任意长度的字节数组;2、entry(即一条K-V记录)默认是按照key的字典顺序存储的,当然开发者也可以重载这个排序函数;3、提供的基本操作接口:Put()、Delete()、Get()、Batch();4、支持批量操作以原子操作进行;5、可以创建数据全景的snapshot(快照),并允许在快照中查找数据;6、可以通过前向(或后向)迭代器遍历数据(迭代器会隐含的创建一个snapshot);7、自动使用Snappy压缩数据;8、可移植性;限制:1、非关系型数据模型(NoSQL),不支持sql语句,也不支持索引;2、一次只允许一个进程访问一个特定的数据库;3、没有内置的C/S架构,但开发者可以使用LevelDB库自己封装一个LevelDB本身只是一个lib库,在源码目录make编译即可,然后在我们的应用程序里面可以直接include leveldb/include/db.h头文件,该头文件有几个基本的数据库操作接口,下面是一个测试例子:#include &iostream&
#include &string&
#include &assert.h&
#include "leveldb/db.h"
int main(void)
leveldb::DB
leveldb::O
options.create_if_missing =
leveldb::Status status = leveldb::DB::Open(options,"/tmp/testdb", &db);
assert(status.ok());
string key = "name";
string value = "chenqi";
status = db-&Put(leveldb::WriteOptions(), key, value);
assert(status.ok());
status = db-&Get(leveldb::ReadOptions(), key, &value);
assert(status.ok());
cout&&value&&
status = db-&Delete(leveldb::WriteOptions(), key);
assert(status.ok());
status = db-&Get(leveldb::ReadOptions(),key, &value);
if(!status.ok()) {
cerr&&key&&"
"&&status.ToString()&&
cout&&key&&"==="&&value&&
上面的例子演示了如何插入、获取、删除一条记录,编译代码:g++ -o test test.cpp libleveldb.a -lpthread -Iinclude
执行./test后,会在/tmp下面生成一个目录testdb,里面包含若干文件:------------------------------------------------------------LevelDB是google开源的一个key-value存储引擎库,类似于开源的Lucene索引库一样。其他的软件开发者可以利用该库做二次开发,来满足定制需求。LevelDB采用日志式的写方式来提高写性能,但是牺牲了部分读性能。为了弥补牺牲了的读性能,一些人提议使用SSD作为存储介质。对于本地化的Key-value存储引擎来说,简单的使用一般都分成三个基本的步骤:(1)打开一个数据库实例;(2)对这个数据库实例进行插入,修改和查询操作;(3)最后在使用完成之后,关闭该数据库。下面将详细讨论该三个步骤:一、打开一个数据库实例一个leveldb数据库有一个对应一个文件系统目录的名字。该数据库的所有内容都存储在这个目录下。下面的代码描述了怎样打开一个数据库或者建立一个新的数据库。#include &assert.h&
#include "leveldb/db.h"
leveldb::DB*
leveldb::O
options.create_if_missing =
leveldb::Status status = leveldb::DB::Open(options,"/tmp/testdb", &db);
assert(status.ok());
如果打开已存在数据库的时候,需要抛出错误。将以下代码插在leveldb::DB::Open方法前面:
options.error_if_exists =二、对数据库的简单读、写操作LevelDB提供了Put,Delete和Get三个方法对数据库进行修改和查询。例如,下面的代码片段描述了怎样将key1对应的value值,移到key2对应的值。std::
leveldb::Status s = db-&Get(leveldb::ReadOptions(), key1, &value);
if(s.ok()) s = db-&Put(leveldb::WriteOptions(), key2, value);
if(s.ok()) s = db-&Delete(leveldb::WriteOptions(), key1);
三、关闭数据库在对数据库进行了一系列的操作之后,需要对数据库进行关闭。该操作比较简单:... open the db as described above...
... do something with db ...
上面对levelDB的简单使用做了基本的介绍,接下来就是如何自己写一个完成并且能运行的例子。1、下载源码
git clone 2、编译源码
cd leveldb && make all3、编写test.cpp#include &assert.h&
#include &string.h&
#include &leveldb/db.h&
#include &iostream&
int main(){
leveldb::DB*
leveldb::O
options.create_if_missing =
leveldb::Status status = leveldb::DB::Open(options,"/tmp/testdb", &db);
assert(status.ok());
//write key1,value1
std::string key="key";
std::string value = "value";
status = db-&Put(leveldb::WriteOptions(), key,value);
assert(status.ok());
status = db-&Get(leveldb::ReadOptions(), key, &value);
assert(status.ok());
std::cout&&value&&std::
std::string key2 = "key2";
//move the value under key to key2
status = db-&Put(leveldb::WriteOptions(),key2,value);
assert(status.ok());
status = db-&Delete(leveldb::WriteOptions(), key);
assert(status.ok());
status = db-&Get(leveldb::ReadOptions(),key2, &value);
assert(status.ok());
std::cout&&key2&&"==="&&value&&std::
status = db-&Get(leveldb::ReadOptions(),key, &value);
if(!status.ok()) std::cerr&&key&&"
"&&status.ToString()&&std::
else std::cout&&key&&"==="&&value&&std::
4、编译链接 g++ -o test test.cpp ../leveldb/libleveldb.a -lpthread -I../leveldb/include
注意libleveldb.a 和leveldb include的路径。5、运行结果./test:value
key2===value
Put delete
已有帐号?
无法登录?
社交帐号登录记住登录一个月发表随想还能输入:200字该用户最新代码编程随想&by by by by by by [java]代码库import java.sql.C
import java.sql.DriverM
import java.sql.PreparedS
import java.sql.ResultS
import java.sql.ResultSetMetaD
import java.sql.SQLE
import java.util.ArrayL
import java.util.HashM
import java.util.L
import java.util.M
public class TestConnection {
* 定义链接需要的字符串
private static final String str1 = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String url = "jdbc:sqlserver://localhost:1433;DatabaseName=test3";
private static final String user = "sa";
private static final String password = "910627";
* 加载驱动类
Class.forName(str1);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
* 建立链接的方法
private Connection getConnection() {
conn = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
// TODO: handle exception
* 使用prepareStatement来预编译查询语句 然后传参数的值来作为条件查询数据库 返回list
* @param id
public List getData(String sql, Object[] array) {
// SQL语句
List list = new ArrayList();
conn = this.getConnection();
st = conn.prepareStatement(sql);
// 利用方法传入参数
for (int i = 0; i & array. i++) {
st.setObject(i + 1, array[i]);
// 执行查询
rs = st.executeQuery();
while (rs.next()) {
Map map = new HashMap();
ResultSetMetaData rsmd = rs.getMetaData();
// 以列名为键 存储每一行数据进map
for (int i = 1; i &= rsmd.getColumnCount(); i++) {
map.put(rsmd.getColumnName(i), rs.getObject(i));
// 将每一个map加入list 这样list的到就是每一行
list.add(map);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
// 关闭连接
this.close();
* 更新数据的方法
* @param sql
* @param array
public int update(String sql, Object array[]) {
conn = this.getConnection();
int line = 0;
st = conn.prepareStatement(sql);
for (int i = 0; i & array. i++) {
st.setObject(i + 1, array[i]);
line = st.executeUpdate();
// 判断是否修改成功
if (line & 0) {
System.out.println("更新失败");
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭连接
this.close();
* 关闭连接
private void close() {
if (rs != null) {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (st != null) {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (conn != null) {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
----------------------------------------------------------------------------
import java.util.I
import java.util.L
import java.util.M
import java.util.S
import java.util.S
* 数据库操作类
* @author Administrator
public class Handle {
TestConnection tc = new TestConnection();
Scanner sc = new Scanner(System.in);
* 查询方法
public void query() {
System.out.println("1:查询全部");
System.out.println("2:根据employeeId查询");
System.out.print("选择你要执行选项");
// Scanner sc2 = new Scanner(System.in);
int type2 = sc.nextInt();
switch (type2) {
String Sql1 = "select employeeId,employeeName,email,employeeSalary,departmentId from employee where 1=?";
Object[] array1 = { 1 };
List list = tc.getData(Sql1, array1);
* 取键值 并打印 即为输出的列名 排列
Map map2 = (Map) list.get(0);
Set set2 = map2.keySet();
Iterator it2 = set2.iterator();
while (it2.hasNext()) {
System.out.print("\\t" + it2.next());
System.out.println();
//循环取出 每个行的数据
for (Object object : list) {
// list里面是map对象
Map map = (Map)
Set set = map.keySet();
Iterator it = set.iterator();
while (it.hasNext()) {
Object key = it.next();
// 输出 map里的数据
System.out.print("\\t " + map.get(key));
System.out.println();
* 根据用户输入的员工id进行查询
System.out.println("输入employeeId:");
Object object = sc.nextInt();
Object[] array = { object };
String Sql2 = "select employeeId,employeeName,email,employeeSalary,departmentId from employee where employeeId =? ";
List list2 = tc.getData(Sql2, array);
//输出列名
Map map3 = (Map) list2.get(0);
Set set3 = map3.keySet();
Iterator it3 = set3.iterator();
while (it3.hasNext()) {
System.out.print("\\t" + it3.next());
System.out.println();
//循环输出数据
for (Object object2 : list2) {
// list里面是map对象
Map map4 = (Map) object2;
Set set4 = map4.keySet();
Iterator it4 = set4.iterator();
while (it4.hasNext()) {
Object key = it4.next();
// 输出 map里的数据
System.out.print("\\t " + map4.get(key));
// System.out.print("\\t"+ map.get(key));
System.out.println();
* 更新方法
public void update(){
System.out.print("请输入employeeId:");
Object id = sc.next();
System.out.print("请输入想更新的薪水值:");
Object salary = sc.next();
//根据用户输入的员工号来修改薪水值并判断是否执行成功
String sql = "update employee set employeeSalary = ? where
employeeId = ? " ;
Object [] array =
{ salary, id
//使用TestConnection的update方法
int line =
tc.update(sql, array);
if(line&0){
System.out.println("信息更新成功!");
* 插入方法
public void insert(){
System.out.print("请输入employeeId:");
Object id = sc.next();
System.out.print("请输入employeeName:");
Object name = sc.next();
System.out.print("请输入email:");
Object email = sc.next();
System.out.print("请输入employeeSalary:");
Object salary = sc.next();
System.out.print("请输入dapartmentId:");
Object dpId = sc.next();
Object[] array = {id,name,email,salary,dpId};
//插入用户输入的数据 并判断是否执行成功
String sql = "insert into employee values(?,?,?,?,?)";
int line = tc.update(sql, array);
if(line&0){
System.out.println("插入成功!");
* 删除方法
public void delete(){
System.out.print("请输入想删除的员工号:");
Object id = sc.next();
Object [] array = {id};
//删除用户输入 的员工号的数据并判断是否执行成功
String sql = "delete from employee where employeeId = ? ";
int line =
tc.update(sql, array);
if(line&0){
System.out.println("删除成功!");
-----------------------------------------------------------------------------------------
import java.util.I
import java.util.L
import java.util.M
import java.util.S
import java.util.S
* @author Administrator
public class Test {
public static void main(String[] args) {
//输出选项
System.out.println("欢迎光临:");
System.out.println("1:查询");
System.out.println("2:更新");
System.out.println("3:插入");
System.out.println("4:删除");
System.out.println("5:退出"+"\\n");
System.out.print("你想干什么?
请选择:");
//控制台输入
Scanner sc = new Scanner(System.in);
//实例化数据操作类Handle
Handle hd = new Handle();
int type = sc.nextInt();
* 判断用户选择操作的项
switch(type){
//调用Handle查询方法
hd.query();
hd.update();
hd.insert();
hd.delete();
System.out.println("程序退出!");
System.exit(0);
//该片段来自于http://yuncode.net
分享到:更多共1 条评论
发表评论:评论须知:1、评论每次加2分,每天上限为30;2、请文明用语,共同创建干净的技术交流环境;3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。

我要回帖

更多关于 对字典表进行增删改查 的文章

 

随机推荐