发表于: 2018-03-06 17:12:31
1 699
今天完成的事情:
1.配置环境变量
PATH变量:
当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。比如当用户在命令模式输入javac(编译)命令时,操作系统就会到在PATH路径中找寻指定的工具程序。
CLASSPATH变量:
设置Classpath的目的,在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包(lib\tools.jar和lib\rt.jar)。事实上JDK 5.0默认就会到当前工作目录,以及JDK的lib目录中寻找Java程序。所以如果Java程序是在这两个目录中,则不必设置Classpath变量也可以找得到。
2.JDK与JRE
JDK:java开发基本环境,包含jre
JRE:java程序运行环境
3.初步了解maven
maven之compile、clean、install命令
通过命令行进入maven工程目录,依次运行mvn compile,mvn install,mvn clean命令。
执行mvn compile命令会在根目录生成target文件
执行mvn clean可将根目录下生成的target文件移除
执行mvn install命令会将此工程打成war包,放入到本地仓库(任务里说的是jar包,我这却是war包,使用idea的jar插件可以生产jar,不过是在target目录下)
4.原生JDBC与MyBatis操作数据库,并用Junit和spring整合Junit测试
遇到的问题:
1.maven项目install,本地仓库是war包,使用idea的jar插件,jar包在target目录下。百思不得其解,不了了之
2.由于昨天的学员表有问题,重新建表时出现问题,我想为mysql数据库里的创建时间、更新时间等时间列设置默认值,怎么才能将默认时间设为当前时间戳呢?
网上的错误信息也太多了,一直在current_timestamp。
最后找到mysql建表时不支持函数。
收货:
unsigned 无符号,可以简单理解为非负数。存储范围可以增大一个bit,即2倍
将时间戳转换成日期:unix_timestamp(date)
I think the default value is not allowed to be a function - it must be a constant:
http://dev.mysql.com/doc/refman/5.1/en/data-type-defaults.html
(except for a few cases, which do not include unix_timestamp() )
最终还是没解决这个问题,不设默认值,非空(创建记录时必须传时间戳进来)
3.
面向接口编程。定义一系列的公用接口,多子类可实现,也就是便于以后扩展,维护和节约有效的时间,相同接口,但是可有不同实现,互不干扰。
比如增加用户方法,dao接口定义add方法,可以写两个具体类实现它,一个使用mysql,一个使用orcal,java多态性
1.根据客户提出的需求提出来,作为接口的;业务具体实现是通过实现接口类来完成的。
2.当客户提出新的需求时,只需编写该需求业务逻辑新的实现类。
3.假如采用了这种模式,业务逻辑更加清晰,增强代码可读性,扩展性,可维护性。
4.接口和实现分离,适合团队协作开发。
5.实现松散耦合的系统,便于以后升级,扩展。
现在对面向接口理解还不深入,项目见得多了,我觉得就理解了
4.用spring结合JUnit时,@RunWith(SpringJUnit4ClassRunner.class) 出现解析类型(括号内的类型)不是@RunWith需要的类型的bug,
最会找出原因:spring与Junit版本不匹配。将junit版本改为4.12(原来是4.2),spring的版本为4.2.4
5.
java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()Ljava/lang/Integer;
网上搜了一下,都是说版本问题。在mybatis+spring整合中,由于版本的问题会报错:
将mybatis-spring由1.2.4改成1.3.0,bug消失了
6.错误的将JdbcTemplate理解为原生的JDBC
明天计划的事情:
10点抢购阿里云
评论