本文着重介绍在项目开发过程中遇到的问题和解决方案。
1.数据库配置与连接
要求使用access数据库。首先,什么是数据源 讲解。我们可以直接在cmd中输入下列语句打开ODBC管理程序
%windir%\syswow64\odbcad32.exe
根据网上配置数据源的教程配置好数据源。之后就可以用这个数据源的名字快捷连接它。
连接的时候发现一直在报java.lang.ClassNotFoundException,查资料才发现jdk大于1.7的版本中,jdbc-odbc已被删去,之后发现了各种方法,参考了这个博客https://blog.csdn.net/weixin_42259823/article/details/85200267
最终选定了添加UCanAccess这个第三方驱动,并且和Access_JDBC30.jar是收费软件还需找破解版相比,这个是开源软件。下载链接https://sourceforge.net/projects/ucanaccess/files/。打开一共有五个jar文件,作为外部jar文件添加进项目库就行了。经测试,连接access2013没有问题。
测试代码:
public class DbTest {
public static void main(String[] args) {
Connection connection=null;
try {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
String url="jdbc:ucanaccess://D:/code/data/test1.accdb";
connection=DriverManager.getConnection(url);
System.out.println("\n ok\n");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2.Java聊天室(1)
实现方法参考了这个博客:链接
首先遇到了java.net.BindException: 地址已在使用,后来经查证发现是因为服务端程序忘记关掉了,所以占用了端口。
printWriter使用之后必须要刷新
3.git相关操作
廖雪峰的git教程一生推:链接
关于SSH协议:http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html
学习的时候建议按着顺序跟着做下来,讲的很清除明白了。
在本项目中的应用:组长将公共类写好之后创建仓库,上传代码。所有开发成员fork一份,clone到本地进行开发。开发完毕后push到自己的fork仓库并申请pull request。
上传中踩过的坑,创建新项目后,最好先pull至本地,这时本地仓库就包含了自带的readme,再添加剩余的源文件,最后push即可。参考https://blog.csdn.net/jinyan1111/article/details/82425492
关于从git上下载文件到eclipse,可以直接打开eclipse选择新工作区,import—>git—>url,然后添加GitHub的代码库路径,后面记得加.git,输入用户名和密码,就可直接从代码库pull下来。
4.通信相关(1)
ObjectInputStream和ObjectOutputStream的建立顺序,客户端和服务端存在一个配合的关系,客户端必须先建立输出流,服务端才能建立输入流。参考:链接
5.商城界面制作
目标是做成那种上面图片下面文字描述的结构,因为swing没有group类,所以最后的折衷方案是在一个label中同时显示图片和文字,jlabel有设置文字位置的两个函数,分别是水平和垂直方向上的,将文字位置设置在图片中下即可。
关于label的点击响应,可以重写一个消息类,或者每个对象直接添加。
6.Java聊天室(2)
由于聊天室的通信模式和Vcampus的其余功能不同,需要一直监听ObjectInputStream,而其余功能只需要收发一次,在整合时候就遇到了一些阻碍。
后来想到的一个解决方案干脆就,使用两个端口——创建两个socket,两套代码互相不冲突。