发表于: 2018-03-26 14:17:08

1 491


日期:3月26日

今天学习时间6.5小时

今天完成的事:

先写写一些关于mysql、navicat、eclipse和maven的理解。

①mysql:MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,增加了数据查询和读取的速度并提高了灵活性。什么是数据库?数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。也就是说,mysql是一个系统,用来管理这些存储数据的仓库的,是多个数据库的管理者。mysql有一套自己的系统语言sql语句,是一种开放源代码的工具。关于索引和查询,只有当数据库里已经有了足够多的测试数据时,它的性能测试结果才有实际参考价值。如果在测试数据库里只有几百条数据记录,它们往往在执行完第一条查询命令之后就被全部加载到内存里,这将使后续的查询命令都执行得非常快,不管有没有使用索引。只有当数据库里的记录超过了某个数值,比如1000 条、数据总量也超过了MySQL服务器上的内存总量时,数据库的性能测试结果才有意义。

②navicat:Navicat for MySQL是一套专为MySQL设计的强大数据库管理及开发工具,Navicat for MySQL使用了极好的图形用户界面(GUI),可以用一种安全和更为容易的方式快速和容易地创建、组织、存取和共享信息。 用户可完全控制 MySQL 数据库和显示不同的管理资料,包括一个多功能的图形化管理用户和访问权限的管理工具,方便将数据从一个数据库转移到另一个数据库中,进行档案备份。用我自己的话讲清楚一点,就是说mysql是一个数据库,但是我们看不到里面是什么东西,只有通过sql语句来查询,里面到底有些什么东西;而navicat就是一个把mysql数据库里面的东西用图形和表格展示出来给我们看的工具,我们也可以使用navicat来进行对mysql数据库里面的数据进行查询和修改等操作,而不需要利用sql语句来实现

③eclipse:Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。Eclipse基本内核包括:图形API (SWT/Jface), Java开发环境插件(JDT ),插件开发环境(PDE)等。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。也就是说,eclipse是利用各种插件,比如我们后面说的maven等,来完成一个项目的源代码编写、调试、运行等操作。他是一个java开发平台,但他不仅限于java,还可以使用C、C++和PHP等其他的编程语言。

maven:百度上关于maven的介绍是这样的,Maven是一个项目管理工具它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。看起来似乎不太懂,那么我就查查maven有什么好处。1.管理项目的jar包(依赖管理) 2.项目一键构建3.maven提供了帮助管理构建、文档、报告、依赖、发布、分发的方法,可以方便的编译代码、进行依赖管理、管理二进制库等4.maven的好处在于可以将项目过程规范化、自动化、高效化以及强大的可拓展性。总结一下:maven是一个eclipse的插件,maven项基于java项目而优于java项目,他有自己的优点:项目非常大时,可借助Maven将一个项目拆分成多个工程,最好是一个模块对应一个工程,利于分工协作。而且模块之间还是可以发送消息的,适合多人开发。借助Maven,可将jar包仅仅保存在“仓库”中,有需要该文件时,就引用该文件接口,不需要复制文件过来占用空间。借助Maven可以以规范的方式下载jar包,因为所有的知名框架或第三方工具的jar包已经按照统一的规范存放到了Maven的中央仓库中。Maven会自动将你要加入到项目中的jar包导入,不仅导入,而且还会将该jar包所依赖的jar包都自动导入进来

到这里的时候,好像有哪里有什么不对,mysql和navicat是一路的,eclipse和maven是一路的,那这两路之间有什么联系???我把eclipse和mysql这两个词输入百度之后,打开看,让我意想不到的是,这就是任务1.17的内容。

关于自增ID,在mysql练习的时候,我发现一个问题,就是如果不设置自增的话,插入数据的时候,要给ID赋值,不然会报错,因为主键不能为空;而自增ID则不需要赋值,他会自己自动往下面加一。自增ID其实也是有麻烦的,比如我前面遇到的,我写了3行数据,然后把ID=2和ID=3的两行删了,再写的时候,他不会从ID=2写,而是直接在ID=4的那里写数据;其他的弊端暂时

任务1.17编写DAO,分别JdbcTemplate和Mybatis连接数据库,注意使用JDBCTemplate的时候分离Interface和Imple,使用Mybatis的时候注意理解为什么不需要Impl,注意遵守命名规范。

先做准备工作
下载jdbc驱动包,网址https://dev.mysql.com/downloads/connector/j/
下载mybatis,网址https://dev.mysql.com/downloads/connector/j/
然后将jdbc压缩包里面的mysql-connector-java-5.1.46-bin.jar包复制,打开eclipse,打开项目名称,粘贴到src里面


再点击mysql-connector-java-5.1.46-bin.jar右键build path>add to build path,可以看到src上面多了一个东西,展开之后里面有mysql-connector-java-5.1.46-bin.jar包


新建一个java文件HelloMySQL.java

编写如下代码

package test2;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

public class HelloMySQL{

public static void main(String[] args) {

        // TODO Auto-generated method stub

        Connection conn = null;

        // 驱动引擎

        String jd = "com.mysql.jdbc.Driver";

        // 连接MySQL的连接

        String url = "jdbc:mysql://127.0.0.1:3306/baomingbiao";

        // MySQL的用户名

        String user = "root";

        // MySQL的密码

        String password = "ll..123";

        try {

            // 加载驱动

            Class.forName(jd);

            // 连接数据库对象

            conn = DriverManager.getConnection(url, user, password);

            System.out.println("连接成功");

        } catch (Exception e) {

            // TODO Auto-generated catch block

            System.out.println("引擎失败");

            e.printStackTrace();

        }

        if (conn != null) {

            try {

                // 关闭资源

                conn.close();

            } catch (SQLException e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

            }

        }

    }

}
控制台显示如下

上面那个红色时间后面的翻译是这样的:警告:不建议在没有服务器身份验证的情况下建立SSL连接。根据MySQL 5.5.45+、5.6.26+和5.7.6+的要求,如果不设置显式选项,则必须建立默认的SSL连接。您需要通过设置useSSL=false来显式禁用SSL,或者设置useSSL=true并为服务器证书验证提供信任存储

这个问题百度之后已经解决,MySQL 5.7客户端默认开启SSL加密连接,所以我们在数据库表名后面加一个ssl=true或者false即可。代码是这样的:
jdbc:mysql://127.0.0.1:3306/baomingbiao?useUnicode=true&characterEncoding=utf8&useSSL=false
加好之后红色警告不见了,控制台显示如下

但是,这个跟任务要求的好像不太一样,没有分离Interface和Imple的相关信息。我查看了好多关于这个jdbc链接数据库的文档,获到一些信息,jdbc和jdbcTemplate是有一些差别的,JdbcTemplate是Spring给我们设计的一个模板,它位于Spring包org.springframework.jdbc.core下,是Spring的jdbc工具包的核心类之一。使用JdbcTemplate的前提是必须为其提供数据源(DataSource),并通过实用类DataSourceUtils来安全地获取和释放数据库连接(Connection对象)。可以说已经是一个完美的实现,因此我们只要放心地使用就可以了
至此,任务还没什么头绪,不过找到了2篇关于DAO的文档,里面有包含Interface和Imple的相关信息

https://blog.csdn.net/rikuseiha/article/details/1753283

https://blog.csdn.net/hj7jay/article/details/51130462
希望能有用,明天继续。

明天的计划:
继续啃这个任务了,没别的想法了......不过,要尽量弄清楚DAO的具体情况,然后查一查Interface和Imple的相关内容。前面师兄说的确实没错,从这就开始难了。

遇到的问题:任务1.17,首先来说,拿到任务没什么头绪的,百度查到的大多数是jdbc链接数据库的,关于JdbcTemplate链接数据库的介绍的很少。


收获:今天还是有收获的,首先来说,知道了jdbc链接数据库的大概方法,了解了一些链接时候报错的原因。另外,jdbc链接数据库和JdbcTemplate链接数据库是有差别的。


返回列表 返回列表
评论

    分享到