发表于: 2018-04-25 17:57:11

1 580


今天完成的事情:

一.

1.完成了JDBC与mysql数据库的连接。


之前出现的错误是因为一个符号: 应该是 /


改掉之后出现时差报错。

百度之后,找到解决方法。却不知道解决原因。以后深究。



之后顺利连接成功


2.这里要说一下我对JDBC初具规模的理解。


import java.sql.Connection;/*导入下边程序需要的依赖包,我写的时候系统是自动导入的,并不是复制黏贴的!!IDEA实在是太聪明了!!*/


import java.sql.DriverManager;


import java.sql.SQLException;


           public class jdbctest {  /*创建一个类名为jdbctest,这里的名字必须和文件名一样,并且要有意义!程序是什么就写什么!!*/


public  static void main(String[]args) throws SQLException {


                     try {                    

/*try catch 语句 try是尝试运行以下程序,如若不能抛出一个异常,这里的异常我理解为程序报错。 catch是用来捕获异常的,前边的throw一般出现在方法体。是用来封装try抛出的异常然后被catch捕获。*/


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

/*初始化驱动,我了解到这里可以用new,但是还是用Class.forname比较好。具体为什么真的没看明白*/

          

                       Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/root?serverTimezone=UTC&characterEncoding=utf-8","root","z13269801y");

           

                       System.out.println("连接成功,获取连接对象:"+ con);

       }

                       catch (ClassNotFoundException e){

                       e.printStackTrace();                   

 /*“e.printStackTrace()”在命令行打印出报错位置信息及原因,应该就是courseby后边的那一串*/

       }

}

}


二,补习java基础,术语以及简单流程


1.在java里创建对象有一个术语叫实例化。


2.每个对象有不同的状态,状态就是对象的属性。


3.方法是类的行为,方法分为有返回值的和没有返回值的。


4.至于方法为什么写在public static void main(String args[])前边,我的理解是public static void main(String args[])是程序运行的起始,由于在需要运行的代码中间我们需要用到方法,所以要先把方法定义好,再在下边的程序运行代码中使用。


比如 

public class Hero{

     String name; /*创建并且一个属性,并赋予它属性类型,比如 int float string*/

     int speed;

     int shield;

     int hp;

     void legendary(){              

          System.out.println("超神");     

                      } /*这里的legendary 是我们自己创建命名的一个方法,以void定义的方法,是没有返回值的,也就是不会得到任何的反馈,执行就是了。*/

     int getSpeed(){ 

          return speed;

                       }/*用int定义的方法 getSpeed是有返回值的,所以后边要加上return用来获取英雄当前属性speed的值 */

     void addShield(int shield){

         hp = hp + shield;            

                      }/*这是一个有参数的方法,有参数的方法可以通过像“hp = hp+ shield”的运算式来改变类的属性。同时要在圆括号里赋予shield 的属性类型,也就是int。 */

         public static void main(String args[]){

         Hero pansen = new hero(); 


 \*在这里Hero pansen = new hero();   就是创建了一个新的对象,所谓实例化就是在之前声明了Hero这个类,却没有赋予它实质性的属性,这里创建了一个新英雄 叫潘森。就是对Hero这个类的实例化。这波解释给自己打81分,剩下18分以666的形式给自己。还有一分不给,怕自己骄傲。*\

         pansen.name = "潘森";


/*这里的pansen.name = “潘森”  就是我们赋予对象pansen的属性(状态)   name 和 speed就是属性的名称。属性名称要小写,如果有两个单词组成比如 fuckyou   那么第二个单词首字母要大写成fuckYou  这就是任务17中的命名规范中的一部分。*/

         pansen.speed = 150;

         pansen.shield = 500

         pansen.hp = 1000;

         System.out.println("潘森的初始生命值" + pansen.hp);

         pansen.addShield(500);

         System.out.println("潘森的最终生命值:" + pansen.hp + "潘森的速度:" + pansen.speed + "潘森的护盾值" + pansen.shield);

         

   }

}



明天计划的事情:


1.继续java基础的学习,梳理好知识点。复习今天学习的代码以及基础知识。


2.继续任务17的研究



遇到的问题:


TIP:以后“遇到的问题”模块,都用来提问。“今天完成的事情”成为主力C位。


1.我尝试在上述代码不定义 int shield 和 pansen.shield = 500 的时候 就直接在println的括号里打出 pansen.shield 结果报错。


由此可见 如下这段方法代码中的int shield并没有定义shield属性的作用。

void addShield(int shield){

         hp = hp + shield;            

                      }

那么问题来了,既然我还需要费力再定义一遍int shield 和 pansen.shield = 500  结尾才能打出潘森护盾值为 500


为什么不直接定义好了之后,在结尾得出潘森最终生命值的结论的时候 直接写出 System.out.println("潘森的最终生命值" + pansen.hp + pansen.shield)


而要费力的去创建一个方法,让它来完成这个加法呢。


自己想出来的答案:


教程里的方法只是为了让我们知道了解并练习有参数的方法的使用,并不是为了能起到方便快捷的实际意义。而当运算量非常大或者过程非常繁琐的时候。


我们人脑未必能在最后的println的括号里把所有的过程再写一遍。当运算量小的时候,这类方法确实是没必要存在的。


2.既然JDBC是一个接口,我敲的代码里边并没有出现interface的字眼,类也不是接口类。


我做的主要是导入了依赖包,初始化驱动程序,创建一个连接,连接上mysql数据库。看起来这确实是一个接口。但是为什么没有用到interface呢?


难道此“接口”非彼“接口”?


3.日报要写成什么样子才能获得一个上品呢?



收获:


如果说前天写出JDBC的代码是照猫画虎,那么今天已经算是对JDBC初级版理解了八成了。


对代码的结构理解也有了进步。


找到了在视频里一直不太听得懂的好多专业术语的出处。


用了八天时间我才懂得为什么要遵守命名规范!!! 乱用什么shit  asshole 啥的  多了之后根本不知道谁是谁啊!!!



返回列表 返回列表
评论

    分享到