第一篇:学习心得(数据库操作与socket)专题
学习心得
——数据库操作与socket 编程目的:
编写一个java程序,应用socket,用客户端发送信息,服务器端以用户icstest身份连接数据库ordb3,并根据客户端发送的信息,对数据库ordb3中的表tbl_brh_info进行增删改查的工作。如果操作为查询,则在客户端打印查询结果,并把查询记录写进文件。编程过程:
运用JDBC连接数据库,完成数据库相关操作
使用socket套接字搭建C/S环境
使用多线程知识达到多用户的功能 程序结构:
主要代码:
创建javabean,为实现多线程,继承了Serializable接口(Brh.java)
加载JDBC驱动,连接数据库(DBmanager.java)
数据库相关操作(Dao.java)
建立客户端(Client.java)
建立服务器端,并建立线程与客户端连接(Server.java)
服务器线程(ServerThread.java)
运行过程:
1.开启服务器端,准备接收客户端连接;
2.开启客户端,服务器端建立线程与客户端连接;
3.客户端显示提示信息(1.查询机构2.添加机构3.编辑机构4.删除机构0.退出
请选择业务(1-4):),根据提示信息,选择相关业务;
4.根据所选业务进行相关操作;
(查询删除编辑时,会验证是否有该数据;
添加编辑过程中,会对所添加内容进行验证,以满足格式要求; 查询出的信息会写入查询记录文件D:brhbrh_info.txt)
5.操作结束后,根据提示信息退出(输入“0”),退出时会关闭该客户端socket,相关的输入输出流及程序;
6.服务器端等待下次客户端连接,直到手动关闭。
部分截图:
服务器端
客户端
遇到问题:
1.对象无法传递;
原因:没有对对象进行序列化;
解决:Brh类继承Serializable接口。
2.第二天连接时客户端无法连接上;
原因:动态获取IP,导致IP地址改变; 解决:改写代码为当前IP。
3.在客户端提示信息后输入中文出错(直接输入中文,先输入字母或数字再输入中文不会报错);
原因:原因不明,而且并非程序报错,只是不能输入,仔细检查后,确定不是代码问题,也许是IDE原因。疑为输入法问题,因为切换到其他输入法后(智能ABC和微软拼音都试过,原为搜狗拼音),直接输入数字也会出错;
解决:尚未解决。
经验心得:
在本次练习中,通过程序的编写,调试,修改等过程,收获到不少东西,其中主要有:
1)巩固以前的知识。运用JDBC连接数据库,编写字符界面和验证所用的JAVA基本语句,以及输入输出流,序列化和反序列化等,都是一些常用和基础的知识,通过本次程序进一步熟练;
2)学习一些以前不熟悉或不会的知识。在本次的程序编写中,对于多线程及socket一块的知识,虽然以前也有接触学习过。但掌握不深,不够熟练。但通过查阅资料,完成了本次的应用,还对这类知识在本次程序中没用用到的部分,进行了深入的学习,以便在下次遇到该类问题时能应对;
3)在本次程序编写过程中,最大的收获得益于查阅资料学习的过程。在面对无法解决
第二篇:数据库操作
Excel技巧:Excel如何快速统计各销售人员的销售总金额?
继续解决Q群小伙伴提出的问题,Excel如何快速统计各销售人员的销售总金额?题目问得好像是个销售问题,其实针对各种分类汇总的数据统计。这次用透视表的方法给大家分享一下快速统计的方法。
场景:适合财务、销售、HR等数据统计的办公人士。问题:Excel如何快速统计各销售人员的销售总金额? 解答:利用Excel的数据透视表搞定!
具体操作如下:将光标放置于销售人员销售表格区域中任意单元格,然后再插入选项卡中点击“数据透视表”功能。
第三篇:操作数据库小结
一.查询操作
对数据进行查询操作时,有两种情况:一是查询单个值,二是 查询若干条记录。
1、查询单个值
需要使用Command对象的ExecuteScalar()方法:步骤如下:(1)、创建Connection对象(数据库连接对象)。(2)、创建查询用的SQL语句。(3)、利用SQL语句和Connection对象创建Command对象。(4)、打开数据库连接,调用Connection对象的Open()方法。(5)、调用Command对象的ExecuteScalar()方法,返回一个标量值。(6)、操作完成后关闭数据库连接,调用Connection对象的Close()方法。
2、查询若干条记录
需要使用Command对象的ExecuteReader()方法:步骤如下:(1)、创建Connection对象(数据库连接对象)。(2)、创建查询用的SQL语句。(3)、利用SQL语句和Connection对象创建Command对象。(4)、打开数据库连接,调用Connection对象的Open()方法。(5)、调用Command对象的ExecuteReader()方法,返回一个DataReader对象。(6)、调用DataReader对象的Read()方法逐行读取记录,如果读到记录返回Ture,否则返回False.(7)、使用(type)dataReader[列名或索引]的方式读取这一行中某一列的值。(8)、关闭DataReader对象(9)、操作完成后关闭数据路连接,调用Connection对象的Close()方法。
二、非查询操作
对数据库执行非查询操作时,包括增加,修改,删除数据,都使用Command对象的ExecuteNonQuery()方法,步骤如下:
(1)、创建Connection对象(数据库连接对象)(2)、创建增删改用的SQL语句。(3)、利用SQL语句和Connection对象创建Command对象。(4)、打开数据库连接,调用Connection对象的Open()方法。(5)、调用Command对象的ExecuteNonQuery()方法执行命令,返回受影响的行数。(6)、操作完成后关闭数据库连接,调用Connection对象的Close()方法。
本章总结
1、使用DataReader查询数据记录,通过Command对象的ExecuteReader()方法返回一个DataReader对象。
2、使用DataReader读取数据室每次调用Read()方法读取一行数据。
3、DataReader使用完后要调用它的Close()方法关闭。
4、使用Command对象的ExecuteNonQuery()方法对数据进行增删改的操作。
5、ExecuteNonQuery()方法返回受影响的行数。
6、ListView(列表视图)控件有5种视图模式,重点是Details 列表视图的Items属性表示包含在空间中的所有项的结合,每一个项都是一个ListViewItem,使用Items.Add()方法向列表视图中添加一项 调用列表视图项的SubItems.AddRange()方法添加它的子项
ListViewItem lviStudent = new ListViewItem(loginID);创建一个ListView项 lviStudent.Tag=(int)dataReader[“StudentId”];lvStudent.Items.Add(lviStudent);//向ListView中添加一个新项 lviStudent.SubItems.AddRange(new string[] {studentName,studentNo,userState});//向当前项中添加子项
7、ContextMenuStrip(快捷菜单)控件可以与其他控件结合使用,通过设置控件的ContextMenuStrip属性来指定它的快捷菜单。
想鼠标右键单击文本框时出现快捷菜单,就选中文本框在属性窗口中找到它的ContextMenuStrip属性,选择已有的右键菜单控件 txtLoginId.Focus():
下拉列表:
创建Command对象调用Command对象的ExecuteReader()方法创建DataReader对象(sqlDataReader dataReader=command.ExecuteReader())使用DataReader的Reader()方法逐行读取数据(放回bool类型)读取当前行的某列的数据(cboGrade.Items.Add(dataReader[“列名”]))关闭DataReader对象,Close()方法
向数据库中添加数据:
创建Connection对象定义要执行的SQL语句创建Command对象执行ExecuteNonQuery()方法根据返回的结果进行后续的处理
双击显示出ID:
MessageBox.show(dataGridView1.SelectedRows[0].cells[“ColID”].value.ToString());
刷新:
1,BindStudentByLoginID(txtBox.Text)2,listView.Items.RemoveAt(Listview1.SelectedIndices[0])//只能删除选中的行(选中第几个)
第四篇:数据库学习心得
数据库学习心得
软件0704刘辰(07301096)马晓雪(07301098)刘靖远(07301097)
经过一个学期的数据库课程的学习,我们掌握了创建数据库以及对数据库的操作的基础知识。王老师的教学耐心细致,课堂上我们有不理解的地方老师都反复讲解,使我们的基础知识掌握的比较牢固。数据库这门课涉及到以前的知识不多,是一门从头学起的课程,即使基础不是很好,只要认真听讲、复习功课,还是一门比较容易掌握的课。
在课堂上,使用英文课件,老师会叫同学起来翻译知识点,这种方法有助于加强理解、深化记忆,是比较好的,希望以后能够继续下去。因为毕竟软件专业是离不开英文的资料和环境的。这样提早的锻炼会让我们受益匪浅的。
项目小组和实训的内容又让我们了解了如何将数据库与网页等其他界面结合的知识,使得数据库的知识更加有实际意义。课堂上讲的知识比较理论化,如果不动手就无法将知识转化为技能,而制作项目能够让我们将学过的知识在实践中运用,找到知识漏洞,并且能学到更多关于实际操作的知识和技巧。并且培养了我们的自学能力。
对课堂改进措施的一点建议:我觉得如果老师不要求 我们很少有人回去会按进度去读英文教材。但是我又觉得读教材是很有帮助的,所以希望老师可以再这方面加强要求,督促我们。
第五篇:数据库学习心得
数据库学习心得
一直以来,对于数据库这门课的理解就是一门文科性质的学科,处理的问题就是一些跟数据有关的问题吧。大三上学期,数据库作为专业选修课学习了半个学习,彻底改变了自己对于数据库课程的认识。作为非计算机专业的学生,尤其自己觉得对计算机方面的课程一致都不太在行,学习起来并不好过。
和很多计算机的课一样,数据库的内容在自己眼里显得很零散、不成系统,许许多多的零碎的知识点需要小心注意到,但是这个感觉随着慢慢学习的深入初步改变,数据库课程的概念和方法又一套完整的体系,理论性和逻辑性很强,对于事物处理能力有很高的要求。在老师介绍中也渐渐认识到,各行各业都离不开数据库,无论规模的大小,数据库对于一个企业或者部门来说都是至关重要不可或缺的。数据库就像一套密密麻麻的神经网络,将整个系统置于规范有效的运行模式之下。
数据库也让我第一次接触到了SQL语言,开头的时候老师给了操作的步骤,但就算是这样也难免犯错,因为是按照给定的步骤做的,没有自己的思考方式,所以对于这门语言的精髓所在没有理解到,做完了之后还是觉得SQL语言很抽象难懂,就像其他很多计算机语言一样。幸好有老师耐心的讲解,每次操作遇到困难,老师都会认真的讲解,如果一时不能解决,老师会在下一次讲课或者其他方式告知我解决的办法,这更是激发了我要学好数据库这门课的决心。慢慢的有了一些信心,然后发现,其实数据库的题目没有什么固定的解法,每个
问题都有很多种解决方案。
在结束了课堂的学习之后,老师还为我们安排了上机。这时,平常上课所积累的知识才真正有了用处,但同时也发现存在很多的问题。譬如说在建立一个关于教学质量评价的简单数据库系统时,前期的步骤都没有错误,唯独在设置学生成绩表的时候无法正常设置主键,自己在做的过程中忽略掉了这一问题,直接导致在最后建立模型时出现无法更改的错误,无奈之下只能选择重新开始,还是发现主键的设置不正常,一时便无法进行下去,一筹莫展之际,老师给我提供了帮助顺利解决得了问题。
由此可见,学习任何知识都来不得半点的差错,否则必将会导致巨大的失误。意识到这之后也不禁后怕,好在这是学生时期的练习,就算是错误也没有实质性的影响,但要是在以后的工作中呢,也需就是给公司造成了巨大的损失。平时的一点一滴中务必养成认真仔细的习惯。
数据库技术产生于六十年代末,是数据管理的最新技术,是计算机科学的重点,它的出现极大的促进了计算机应用向各行各业的渗透。而数据库的建设规模、数据库信息量的大小和使用额度已成为衡量一个国家信息化程度的重要标志。在当下信息化的时代,数据库技术已经成为我们必须掌握的技术之一。通过对这门课的学习,使得我对这门课有了深入的了解,掌握了有关数据库中的思维方法,并对数据库有关的应用有了一定的认知,相信对数据库技术的学习在今后的工作必定有很大的用处。