(以下内容是我个人对配置数据源的一点理解,如有错误请指正,不胜感激)
web课程的第一次作业的第二个,关于手动配置数据源,不少同学比较困惑,而且我解决之后也未必理解深刻,这份文档只是写一下个人的一些想法,希望能够帮助到大家。
PS:老师给的ppt大部分代码是直接可以用的,但可能老师为了让大家解决问题,会故意设置一些错误代码,让大家更深入的理解。
用eclipse,myeclipse等开发工具进行过连接数据库的代码,可能有不少同学写过。我们通过在开发工具引入jar包,然后注册驱动,建立连接等等(比如model2),这样很方便的能将数据库中的内容获取到,并显示在相应页面上。手动配置数据源其实就是仅仅通过tomcat来解析xml文件,xml中是相应的数据源配置信息,然后将其内容映射到指定的页面上,以此让大家对数据源有更深入的了解。以下是根据老师ppt大致步骤进行的配置:
1. 在tomcat路径下找到conf/Catalina/localhost,然后在里面创建一个dd.xml,如下图:
注意:
1) 有些同学可能并没有Catalina/localhost路径,这需要自己创建文件夹
2) docBase一定要注意,这是将来xml映射的路径,在解析xml文件时,会通过该路径找到对应的内容。这边只要写到某个jsp页面的上一层级文件夹即可,比如我的aa.jsp文件是在E:/codes/01/这个文件夹下面
3) 有些同学比较困惑,这边是用斜杠还是反斜杠,其实这边只是为了指定路径,斜杠反斜杠并没有区别,都是可以的,亲测有效。
4) xml编写工具首推notepad++,这是一个开源工具,需要下载一个xml的插件,然后编辑xml格式会很漂亮
2. 然后在docBase的路径下面创建一个显示数据的jsp文件(html文件亦可)。有个讨巧的方法,就是可以先用开发工具创建一个jsp文件,然后直接拷贝出来,这样头文件就会很规范。初学者可以手动写头文件相关内容来创建jsp页面,但后期不建议手写,一来太费事,二来出错率极高,而且报错信息莫名其妙,无从查找问题出处。
注意:
第一行里面的charset,pageEncoding还有下面meta里面的charset要保持一致,建议GBK,否则可能出现乱码,utf-8亦可
3. 此时我们需要去dd.xml中配置数据库连接信息,如下图:
相比起前面创建的xml,我们这次增加了一个叫Resource的内容,其中
1) name表示数据源的名称,后面解析是是唯一标识
2) auth指定管理Resource的Manager
3) type指定Resource所属的Java类
4) driverClassName指定相应的数据库驱动
5) url表示jdbc连接路径,其中javaee是数据库名
这边注意:如果有同学修改了mysql端口号的话,一定要修改;localhost其实就是127.0.0.1,这两个都是表示本地
6) username表示数据库的用户名
7) password表示数据库用户的密码
8) maxActive表示连接池中处于活动状态的数据库连接的最大数目
9) maxIdle表示连接池中处于空闲状态的数据库连接的最大数目
10) maxWait表示连接池中的连接处于空闲的最长时间,超过这个时间会抛出异常,如果这边取值为-1,则表示可以无限期等待
4. 在dd.xml创建好相应的数据库连接信息之后,我们需要去mysql中创建对应的信息,大家可以通过命令行进行一系列的创建:
也可以通过比如navicat这样的数据库管理软件
在数据库中创建名叫news_inf的表格,这个可以参考老师ppt给出的sql语句,很多同学在这边很粗心,表名跟dd.xml不一致,字段也不一致,特别是下划线可能写成短横线,后期都会报500错误,所以一定要仔细检查。创建完表之后,就可以在其中插入数据,作为后期jsp页面显示的内容。
tips:
navicat这边如果没有双击指定数据库的话,在工具栏那边点击查询后,新建查询是制灰的,因为找不到对应的数据库,新建查询之后,就可以在里面编写sql语句
5. 刚刚创建好的jsp页面需要补充一些信息:
注意:
上面一系列黄色显示的import内容,这是下面java代码需要使用使用的包,不引入或者少引入都会报错。
6. 数据库创建好之后,基本该有的内容都已经创建好,再强调一遍:
dd.xml ——> aa.jsp——>数据库连接,缺一不可
7. 注意:要连接数据库,一定需要mysql的相关驱动,这个驱动需要放在tomcat下的lib,此外还要将此路径配置在CLASSPATH,如:.;E:\apache-tomcat-8.0.43\lib\mysql-connector-java-5.1.22-bin.jar
8. 现在去tomcat/bin/双击startup.bat,这样可以启动tomcat
注意:
1) 大家一定要养成看tomcat启动各种信息的习惯,后期使用开发工具进行开发时可以很方便的快速定位问题出处
2) 有同学发现双击startup.bat文件,信息中会有严重警告等报错信息,但tomcat仍然会启动,这时要返回检查dd.xml文件,一定是xml文件哪里有问题,导致无法解析xml文件,此时一定要认真检查,如果 用notepad++的话,优势会很明显,因为格式很漂亮,所以能够很快查到问题出处
3) 还有同学可能碰到starup.bat双击后闪退,这个可能原因很多,可以google一下,这边不一一赘述
9. 成功启动tomcat之后,在浏览器中输入http://localhost:8080/dd/aa.jsp,这个url表示tomcat会通过解析dd.xml来把内容映射到aa.jsp页面
注意:这边一般会报以下错误:
1) 404:表示页面找不到,此时通常是tomcat启动有问题,或者docBase路径有问题,导致无法找到指定页面
2) 500:首先恭喜,tomcat启动正常;但这边会有多种可能:
大家碰到这样问题后,要先看exception下面的内容,以及下面的报错信息,这个定位通常会很准确。这个报错表示无法解析第14行的java代码,也就是包引入有问题,需要检查jsp页面引入的包
这是很典型的jsp页面中缺失标点,仔细看一下红框显示内容,就可以快速定位哪里有问题
类似的问题基本就是数据库连接有问题,会提示jdbc之类的错误,这时候要回头仔细检查数据库连接,基本都会将问题排查出来。
(这边无法将所有情况多罗列出来,但出错的类型不外乎这三类,大家排查起来要认真,仔细查看报错信息,然后快速定位问题出处)
10. 以上问题都排解掉之后,就会出现我们想要的结果:
此时,该作业大功告成~