发表于: 2017-08-10 21:51:04

1 954


一、今日完成

1)学习总结Java编码规范,如下:

i.用大写字母表示常量。

ii.用首字母大写形式表示类、包和接口名。

iii.用小写字母给变量和方法命名,除第一个单词外,每个词地首字母应该大写。如minTaxRate。所有的保留字都一定是小写。

现在Java程序开发使用IntelliJ IDEA,所以关于空格、缩进设置以及保留字高亮、字符串常量淡显等设置已经可以完全交给它去完成;关于大小写的书写规范的统一主要是为了帮助阅读自己以前编写的或者其他人编写的源代码,能够轻易识别出包名、类名、方法名、对象名,从而快速掌握代码控制流。

2)学习了Linux系统的一些命令:

i.创建、删除文件和文件夹命令

a.创建

mkdir [-m/-p] DirName

-m     用于对新建目录设置存取权限,也可以用 chmod 命令进行设置。

 -p     需要时创建上层文件夹(或目录),若文件夹(或目录)已经存在,则不视为错误。

b.删除

rm [-i/-f/-r] DirName

-i     删除前逐一询问确认。

-f    即使文件夹属性为只读,也可以直接删除,无需逐一确认。

-r    将目录及以下之文件逐一删除。

c.vim命令,一个向后兼容vi的复杂文本编辑器,对比昨天学到的vi命令,具有非常多相似的地方。

3)学习Java 基础,学习一些基本概念和规定:

i.构造方法:定义类时,通常要定义一个构造方法以辅助创建类的实例。不同于常规方法有两处:一,构造方法名与类名相同;二,构造方法不能返回值。每个类都有一个不带参数的默认构造方法。

ii.Java程序的main方法必须用static修饰符进行声明,这样做是为了让解释器执行main方法时,不用实例化含有main方法的类。

iii.异常与错误的区别:异常(exception)是一个定义非正常情况或错误的对象,由程序或运行时环境抛出,可以根据需要进行相应的捕获和处理。错误类似有异常,不同之处是错误代表不可恢复的问题并且必须捕获处理。

4)新建JDBC实例,准备测试不关闭连接池的时候,在Main函数里写1000个循环调用的后果,连接DB中断后TryCatch执行情况。但是代码出现了问题,目前还未解决。

二、明日计划

讲解Java小课堂,准备素材和PPT。

三、遇到问题

1)新建JDBC实例项目结构如下:

DBUtil.java的核心代码如下:

public class DBUtil {

    //获取数据库连接

    public static Connection getConnection(){

        Connection conn=null;

        try {

            Class.forName("com.mysql.cj.jdbc.Driver");

            conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/task01", "root", "20110814Gl");

        } catch (ClassNotFoundException e) {

            e.printStackTrace();

        } catch (SQLException e) {

            e.printStackTrace();

        }

        return conn;

    }

test.java的核心代码如下:

public class Test {

    public static void main(String[] args) {

        //添加学生

        StudentDAO sd=new StudentDAOImpl();

        sd.addStudent(new Student("tom",20,"男","110","本科"));

        //删除学生

        sd.deleteStudent(2);

        //修改学生

        sd.updateStudent(new Student(3, "汤姆", 25, "男", "112", "研究生"));

        //查询所有学生

        List<Student> students=sd.getAllStudents();

        Iterator<Student> it=students.iterator();

        while(it.hasNext()){

            Student stu=it.next();

            System.out.println(stu.getId()+","+stu.getName()+","+stu.getEducation());

        }

        //根据编号查询学生

        Student stu=sd.getStudentById(5);

        System.out.println(stu.getId()+","+stu.getName()+","+stu.getEducation());

运行test.java中的main方法,控制台报错:

Thu Aug 10 22:38:23 CST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

……

Caused by: com.mysql.cj.core.exceptions.InvalidConnectionAttributeException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time 

似乎是JDBC中连接数据库的代码有问题,明天抽空检查。

2)前期做任务1,对jdbc、spring以及mybatis等相关内容的学习,仅仅是做了模仿代码,测试通过,缺乏相应的知识点的整理和总结。而网络上的博客教程大多是一些孤例,仅属于用代码实现某个知识点的一个演示,至于what、why和how的问题均属于浅尝辄止,甚至有纰漏百出,不一而足。目前积累的知识点都是非常零碎化,可以预见在后期甚至都无法构建出一个自己的知识框架来,这种学习方式相当危险,值得警惕。

四、今日收获

学习了Linux的一些命令;发现近三周学习方式的造成的严重问题。



返回列表 返回列表
评论

    分享到