发表于: 2018-10-13 23:25:39

1 485


这两天在做课设,进度停滞了……

一、今日完成:

1、之前在做mybatis的时候,整个项目编译没有问题,但运行测试类,进行测试时,控制台提醒找不到xml配置文件,尝试网上的方法,将文件标记为

Resource roots,无果,在pom.xml build中添加说明,还是没用,于是换了个模板,重新写项目,又出现了以下错误

声明InputStream


选中@test,按alt+enter,转变为测试类,问题解决

测试运行后提示数据库不对

将数据库名,表名对上,xml文件移到src目录下,成功


2、学习的相关知识点如下

oot文件夹区别

1. Source roots (or source folders)

By assigning a folder to this category, you tell IntelliJ IDEA that this folder and its subfolders contain source code that should be compiled as part of the build process.

通过将文件夹加入这种类别,来告诉IntelliJ IDEA,这个文件夹和它的子文件夹中包含源码,在构建工程时,需要作为一部分被编译进去。

2. Test source roots (or test source folders; shown as rootTest)

These roots are similar to source roots but are for code intended for testing (e.g. for unit tests). Test source folders let you keep the code related to testing separate from the production code.

Compilation results for sources and test sources, normally, are placed into different folders.

这个类型的文件夹也用于存放源码,不过是测试的源码(比如单元测试)。test source 文件夹可以帮助你将测试代码和产品代码分离开。

3. Resource roots

are for resource files used in your application (images, various configuration XML and properties files, etc.).

During the build process, all the contents of the resource folders are copied to the output folder as is.

Similarly to sources, you can specify that your resources are generated. You can also specify which folder within the output folder your resources should be copied to.

该类文件夹用于存放你的应用中需要用到的资源文件(如:图片、xml或者properties配置文件等)。

在构建过程中,resources文件夹中的内容均会按照原文件的样子被复制到输出文件夹。和sources文件夹一样,你可以定制你的resources文件夹的结构。你也可以指定你的resources文件夹中的文件被拷贝到输出文件的哪个文件夹中。

ps:默认情况下,工程编译后,resources中的文件和文件夹会被放置在和源码编译后相同的文件夹中,所以如果在源码中以相对路径读取resources中的配置文件时,可认为src中的java文件夹和resources为同一个根目录。

4. Test resource roots

(or test resource folders; shown as rootTestResourceIJ; available only in Java modules) are for resource files associated with your test sources. In all other respects, these folders are similar to resource folders.

(只有在java模式中可以使用)用于存放测试源码中关联的资源文件。除此之外,和resource文件夹没有区别。

**5. Excluded roots (shown as rootExcluded) are ones that IntelliJ IDEA 
“almost ignores”.**

Very limited coding assistance is provided for files in excluded folders. Classes contained in excluded folders don’t appear in code completion suggestion lists, references to such classes are shown in the editor as unresolved. When searching, IntelliJ IDEA doesn’t look in excluded folders, etc.

为排除文件夹中的文件提供非常有限的编码帮助。排除文件夹中包含的类不会出现在代码完成建议列表中,将显示对此类的引用。 因为编辑没有解决。搜索时,IntelliJIDEA不查看排除的文件夹等。


环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。

环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如WindowsDOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。

 

 

Windows下JAVA用到的环境变量主要有3个,JAVA_HOME、CLASSPATH、PATH。

     JAVA_HOME 指向的是JDK的安装路径,如C:\jdk1.5.0_06,在这路径下你应该能够找到bin、lib等目录。

( 今晚使用新系统配置,不知道怎么的需要加bin才可以在CMD运行,JAVA_HOME=C:\jdk1.5.0_06\bin; 下面是网上整理实践可使用贴上的,注意JDK和Eclipse必须同位数Bit才可以使用,不能是不同位数的程序,已实践,不然要报错无法使用;如需卸载JDK,JDK不能直接删除文件夹,要使用卸载方式,不然无法再使用JDK或无法卸载,只有重新安装OS才能使用了,以前遇过 )

      JAVA_HOME=C:\jdk1.5.0_06

     PATH 环境变量原来Windows里面就有,你只需修改一下,使他指向JDK的bin目录,这样你在控制台下面编译、执行程序时就不需要再键入一大串路径了。设置方法是保留原来的PATH的内容,并在其中加上%JAVA_HOME%\bin

(注,如果你对DOS批处理不了解,你可能不明白%%引起来的内容是什么意思;其实这里是引用上一步设定好的环境变量JAVA_HOME,你写成x:\JDK_1.4.2也是可以的;你可以打开一个控制台窗口,输入echo %JAVA_HOME%来看一下你的设置结果)    

     PATH=%JAVA_HOME%\bin;%PATH%


     同样,%PATH%是引用以前你设置的PATH环境变量,你照抄以前的值就行了。

     CLASSPATH 环境变量我放在最后面,是因为以后你出现的莫名其妙的怪问题80%以上都可能是由于CLASSPATH设置不对引起的,所以要加倍小心才行。


     CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar


     首先要注意的是最前面的".;",如果你看不清,我给你念念——句点分号。这个是告诉JDK,搜索CLASS时先查找当前目录的CLASS文件

 

 

根目录指逻辑驱动器的最上一级目录,它是相对子目录来说的。打开"我的电脑",双击C盘就进入C盘的根目录,双击D盘就进入D盘的根目录。其它类推。

根目录在文件系统建立时即已被创建,其目的就是存储子目录(也称为文件夹)或文件的目录项。一""目录树,树的最根本就是它的根(根目录)

abc/file2/3.txt

abc/便是根目录。

file2便是网址的一级目录,有一个"/"就是一级目录(不算最后一个)3.txt就属于/file2/的二级目录文件。


PO,持久对象(Persisent Object),它们是由一组属性和属性的get和set方法组成。Hibernate纳入其实体容器(Entity Map)的对象,它代表了与数据库中某条记录对应的Hibernate实体,PO的变化在事务提交时将反应到实际数据库中。从结构上看,它们并没有什么不同的地方。但从其意义和本质上来看是完全不同的。

可以看成是与数据库中的表相映射的java对象

POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。

占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号

缓存 就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。

因为缓存往往使用的是RAM(断电即掉的非永久储存),所以在用完后还是会把文件送到硬盘存储器里永久存储。电脑里最大的缓存就是内存条了,最快的是CPU上镶的L1L2缓存,显卡的显存是给显卡运算芯片用的缓存,硬盘上也有16M或者32M的缓存。


3、jdbc jdbctemplate mybatis 区别

jdbc需要每次进行数据库连接, 然后处理SQL语句,传值,关闭数据库.

甚至有时还可能会出现数据库忘记关闭导致连接被占用.

在以后的工作中,客户的需求肯定不是一成不变的,这就导致经常会改动数据库内容.

 

通过JDBCtemplate我们只需更改需要更改的那一部分内容就可以了,不需要进行全局修改.


MyBatis使用SqlSessionFactoryBuilder来连接完成JDBC需要代码完成的数据库获取和连接,减少了代码的重复。JDBC将SQL语句写到代码里,属于硬编码,非常不易维护,MyBatis可以将SQL代码写入xml中,易于修改和维护。JDBC的resultSet需要用户自己去读取并生成对应的POJO,MyBatis的mapper会自动将执行后的结果映射到对应的Java对象中。

 

所以 使用MyBatis的编码风格统一优雅、性能高,灵活性好。


二、明日任务:

练习单元测试,查看日志,并转成Debug模式,练习调试,学会查看单步执行时的变量值。


三、问题:

看到有网友说测试类编译的是classpath路径下的文件,不知道classpath是不是指的是src目录,如果把xml文件放在与src同级的config文件下,测试的时候就不编译了吗


四、收获:

mybatis相关知识



返回列表 返回列表
评论

    分享到