之前用JetBrains的 pycharm写python代码的时候就觉得很顺手,现在写Java代码更是不能错过 Intellij IDEA,比Eclipse更加好用。
在之前的博文中讲过IntelliJ IDEA 配置 Tomcat8,现在我们的工作就是把代码放到Intellij中去。
先创建一个项目,new project -> Java Enterprise -> Web Application
Bookstore的代码长这样:
将src下的全都拷贝到idea project的src目录下,
将css, images, js 目录和除了index.jsp外其他的jsp文件拷贝到web目录下,
将原来的index.jsp中的<html>... </html>中的代码,替换成 Bookstore中的index.jsp中的<html> ... </html>包含的代码。
代码替换这部分结束了。
下面进行jdbc 的连接
jdbc其实就是用java代码访问数据库的api。
点开 View -> Tool Window -> Database 我们可以添加各种数据库支持。
在Data Source中选择mysql,我们可以进行mysql的配置。
添加Database, User, Password,最下面有一个Driver,点一下,可以让Intellij 帮你下载对应数据库的jdbc驱动。
最后,点Test Connection测试连接。之后右键Project -> Open Module Setting -> Library 添加jdbc.jar
之后运行代码,每次到了跟数据库连接有关的地方就会报错。
调试一下,发现在 Class.forName("com.mysql.jdbc.Driver")根本就找不到驱动,
我很困惑,明明添加了jar,会什么还会说找不到驱动呢?这一步我花了很多时间查找资料来解决。
最后才知道要把jdbc.jar放在web/WEB-INF/lib 下。
于是在WEB-INF目录下新建lib目录,但右键lib目录,Intellij不能像Eclipse一样add dependency。
查找资料,这个回答完美地解决了我的问题。
右键 Open Module Setting,进入Artifacts
将Available Element拖到lib目录下。
最艰难的问题解决了!
其他的小问题:
1. 显示jsp不能编译,一般是jsp代码本身有问题且很有可能是因为文件头部的import中有冲突
2. java.rmi.server.ExportException: Port already in use: 1099; nested exception is:
java.net.BindException: Address already in use
显示端口被占用的话,查找哪个进程用这个端口,然后kill
lsof - i tcp:1099
kill -9 xxx
最后,运行代码,就可以显示网上书店了,支持各种操作了。