发表于: 2018-04-04 00:45:54

1 702


今天完成的事情:Java连接数据库MySQL ,JDBC ,配置文件 ,任务一步骤  1—7

Java操作数据库的步骤1.注册驱动    (告知虚拟机JVM使用的是哪个数据库的驱动)

                                       2.获取进度    (使用JDBC中的类,接口完成MySQL数据的连接 )

                                       3.获得语句执行平台   (通过连接对象获取SQL语句的执行对象)

                                       4.执行SQL语句

                                       5.处理结果

                                       6.释放资源

步骤1:注册驱动   java.sql包里边有个DriverManager 方法registerDriver(Driver driver),传递的参数是接口Driver的实现类对象

                            

                             查阅Driver源码发现Driver接口里边有静态方法:

                             

                           在new Driver的时候,静态代码块也会执行,所以运用DriverManager的方法传入Driver实现类对象时,相当于注册了两个驱动,这样浪费资源,不可取

正确注册驱动方法应该从Driver静态代码块出发,所以  注册驱动最好的方式:Class.forName("com.mysql.jdbc.Driver");

步骤2:获取进度 DriverManager静态方法  getConnection(url, user, password) 返回值Connection接口实现类  

             url:数据地址,固定格式  jdbc:mysql://主机ip:端口/数据库名字           本机ip可用 localhost 表示 

             user: 帐号                         password:密码                注意: 三个参数都是String类型

步骤3:获取语句执行平台       Connection实现类调用方法prepereStatement(String dql) ,返回值PrepereStatement实现类对象,可以对数据库进行操作

                                         注意:没有用Connection的createstatement()方法获取Statement实现类对象,是因为Statement实现类对象不安全可能被注入攻击
PrepereStatement是Statement的实现类,且可避免注入攻击,所以一般使用PrepereStatement实现类对象对数据库进行操作。

步骤4:执行SQL语句    通过执行者调用方法执行SQL语句,获取结果等操作        

         增删改成使用方法int executeUpdate()               返回数据变动的条数,相当于图形化界面运行当前sql语句结束后的这个     :

         实现查询使用方法 ResultSet executeQuery()   返回值为ResultSet接口实现类对象(既然是查询,肯定是返回的查询结果,所以我把这个看查询结果显示的数据的对象)

                   为表中增加一条数据:  java代码演示:

                   操作时出现的问题:   数据地址写错!! 导致运行的时候出现异常。本机ip地址最好用localhost表示,端口为安装数据库设置时的端口号,如果安装时有更改,就麻烦了,特别要注意的是数据库名字前面是单斜线,转义字符(在这坑了,老是提示不存在,最后试单斜线才成功);

                          调用查询方法,调用实现类的方法next()判断进行遍历打印出表格内容,最后关流:

                                 

配置文件:  相当于步骤2,将信息存储到按规则存储到文本中,然后通过输入流将文本信息读取存储到Properties集合中,然后获取配置文件的是三个属性 ,这样方便后期维护

                     也可以直接将步骤封装到类里边  直接用类名直接调用 比较方便。     

直接将配置文件,和方法封装成工具类    

出现的问题!!!:我自己测试的时候配置文件是放在F盘下的,自己可以确定地址,但是往往配置文件是跟src文件走的,地址不会是F盘,看了视频,关于这块理解不是很透彻,暂时达不到直接调用的效果,另外还有一些小问题都是细节没注意好



开始做任务了  第一阶段——数据库及java基础学习

1.参考修真院线下报名贴(学习资料-线下报名-北京报名)中报名的格式,整理出业务模型,确定需要几个对象,每个对象的属性是什么,对象和对象之间的关系是一对一,还是一对多。

答:报名的情况下,应该让客户填写资料,填入的资料就是这个客户的信息,也就是填入的信息是单个对象的信息,但是修真类型必须是6个给定的选项,选择不同,对应的后期学习属性也不同,服务器接受到的数据按类型进行分类(所以这问题到底问的是什么

2.下载并安装及配置Mysql 5.5

答:已经下载配置好了,但是下载安装吃了很对亏(昨天已经说了,累)

      为什么下载5.5版本?查的资料说好像说MySQL已经被Oracle收购,5.5版本后开始收费

3.下载navicat,或者是Hedisql,连接Mysql,别问我navicat收费怎么办。

答:下载navicat中途出问题,最后安装的MySQLyog,同样是数据库图形化界面,配置连接MySQL完成(重点:端口号3306,数据库的名字root,登录密码123;记载下来方便后期怕忘记了)

4.创建出来报名贴的业务表,并将表结构粘贴到日报中,对比之前师兄的表结构设计,看看有什么差别


偷懒,从图形化界面进行建表的,然后在cmd用命令行查看

5.   使用navicat设计mysql数据库,数据库的每一个表中都要有三个基本的字段,ID(自增Long),create_at,update_at(所有的时间都用Long)。

将id改为long类型 对应mysql中是bingint   加入字段create_at,update_at

6.从报名贴中找一条最近报名的师弟,用Mysql插入这条数据,并能够根据姓名查出来这条记录

通过查询,SQLYog可以显示出来,命令行直接提示成功一条警告,安装MySQL时候默认字解码是utf-8,而我系统默认是gbk,所以当我输入汉字查询的才会报出警告, 要零时在窗口用  cmd窗口命令行 set names'gbk' 来修改一下,修改后查询结果:


7.分别用Navciat和Sql语句去将本条数据记录的报名宣言改成老大最帅

代码演示:update information2 set  idesire='老大最晒' where iname='朱丽';

    这里用到MySQL的数据更新操作关键字 update


===================================================================================


8.将表导出成Sql文件,并使用navciat和Sql分别尝试删除此条数据,并用之前备份的Sql恢复。

SQLyog导出文件是ctrl+s,很简单,已经保存    删除表  :drop table 表明   删除数据库 : drop database 数据库名

对于操作表的关键字还有点不熟悉,还是练习少了,这个得加强!

9.给姓名建索引,思考一下还应该给哪些数据建索引

我开始对这个索引有点理解错误了,以为就是类似于id主键一样,查询根据主键来就行了;查阅资料才发现不是一回事,索引有索引的名字(这里有问题),在数据庞大的时候快捷搜索。索引分为聚焦索引和非聚焦索引,根据特性来分的话,在报名贴中,修真类型和从哪了解到修真院可以用聚焦索引,这样方便查询同类型的数据进行分析(比如为了找java类型的学员有多少人,看看都是从哪了解到修真院的等等),而非聚焦索引的话除了名字,还可以用qq,和修真院线上学号作为索引,毕竟也是唯一的,变动不大



索引这里有个问题,我在昨天建的表上给名字加上索引后,从数据库中看,主键列也是索引,意思是说主键本事就是索引

10.插入10条数据,查看有索引和无索引的情况下,Sql语句执行的效率

  数据太少的情况下,索引并无意义啊

11.查看深度思考中Mysql相关的一些问题,将自己思考的结果写在日报中,并查阅之前师兄的日报,看看是否有合自己思路接近或者是完全不一致的地方。


12.下载Java 7,并配置环境变量,百度搜索一下JDK和JRE的区别,并将结论用自己的话写在日报中

jre是运行class文件的,类似于虚拟机,而jdk是开发必备的,里边包涵了开发,编译和运行,相比而言jre偏向于使用者,如果我要用这个文件,那我直接找到这个class文件运行就行了;而jdk的话,我不仅可以运行这个文件,我还可以对这个文件的java文件进行修改,修改之后重新进行编译,生成新的class文件,再运行,也可以直接运行原class文件。



明天计划的事情:今天学习了java如何用JDBC连接数据库进行简单的操作,以及配置文件的了解,还有几个接口,暂时会用,但是还没记下来,明天继续学习

                          顺便了解一下DBUtil工具类,任务一继续往下做 。

遇到的问题:数据库的编码问题,配置文件的调用有点棘手,理解有点模糊
收获:连接数据库,cmd中MySQL的一些简单命令行


返回列表 返回列表
评论

    分享到