发表于: 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 啥的 多了之后根本不知道谁是谁啊!!!
评论