java项目-java聊天室2

使用“create from archetype”
se的项目用“quickstart”

后期servlet,基于web,使用“webapp”

之后检查下载的包是否从阿里云上下载,是的话就行。不然会有点慢。

保留groupId,其他全删 在</project>之前。

将下文粘贴到对应位置

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <maven.compiler.source>1.8</maven.compiler.source>
  <maven.compiler.target>1.8</maven.compiler.target>
</properties>

<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.13</version>
  </dependency>
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.47</version>
  </dependency>
  <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.6</version>
  </dependency>
  <!--密码加密-->
  <dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.11</version>
  </dependency>
  <dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.0</version>
  </dependency>
</dependencies>

上文是一些需要的包


json:前后端交互的一个标准格式。他就是一个字符串。是序列化的一种,可以把任意对象变成字符串,也可以将字符串还原成任意对象。因为带界面后字符串会很复杂,很麻烦。json处理就简单了。

{"1":"test"}
id username
key value


之前写过的多线程聊天室(并没有),

群聊G:msg

私聊P:username+msg

其实就是想服务器发送特殊字符,服务器根据特殊字符进行判断

写项目

service
dao:数据库相关,先写
创建数据库,右手边有按钮

创建数据库
root
123
创建数据库

create database if not exists chatroom charset = 'utf8';

use chatroom;

create table if not exists user(
  id int primary key auto_increment comment '用户ID',
  username VARCHAR(20) unique not null comment '用户姓名',
  password VARCHAR(100) NOT NULL COMMENT 'MD5加密后的密码',
  brief VARCHAR(100) NOT NULL COMMENT '一句话介绍自己'
)CHARSET = 'UTF8';


如何从java程序操纵数据库

JDBC
传统格式:
1.加载驱动
class.forname()

2.获取连接
Connection

3.执行SQL
Statement:问题有SQL注入漏洞
PreparedStatement
两个用下面的

ResultSet

select:exectueQuery():ResultSet

insert/update/delete:exectuUpdata():int      //更新操作不返回结果集,返回受影响的行数是几行

4.关闭资源
Connection
Statement 
ResultSet


新方式 通过数据源:DataSource 两种方式都有四步 除了第一步其他全一样。
(DataSource可以类比线程池,传统格式类比Thread类,连接在使用完后不关闭,等待下一次)
(商用数据源,c3p0-最早的,不用;druid-方便,功能完全,主要指监控功能;Hakari-Spring内置数据源)

(使用数据源,要配置的文件放入resources文件夹下,位置在main文件夹下,然后一定要Mark as 成resources文件夹)
1.加载数据源


数据源在项目的文件加下,直接拷贝到刚才的资源文件夹里

下面是文件内容,只用于讲解,文件还是自己拷贝

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost/chatroom?charset=utf8&useSSL=false&allowPublicKeyRetrieval=true
username=root
password=123
filters=stat
initialSize=5   //相当于线程池中的核心池,创建5个连接等你连
maxActive=30    //最大线程池
maxWait=60000//等待时间
timeBetweenEvictionRunsMillis=60000
minEvictableIdleTimeMillis=300000
validationQuery=SELECT 1  //测试连接到底对不对
testWhileIdle=true
testOnBorrow=false
testOnReturn=false
poolPreparedStatements=false

有一个数据库名字要改成自己的
注意连接的编码也是utf8

ssl 安全通道,你的信息是加密的,上面设置成false是因为,这次是本地,用不到
还有usename和password要改


接下来加载配置文件,不光是数据库其他还要用,是公共方法,放到java(最下面的java,即com.gaotengfei.java )下的util文件夹(自己新建)


java中写一个方法就要测试
idea有快捷键
ctrl+shift+T,鼠标放到类上,选择Junit4,勾选

这样会出现一个测试类,有@Test注解,单元测试,大公司要求90%有单元测试


assert有很多种 

InputStream in = CommUtils.class.getClassLoader().getResourceAsStream(fileName);//加载指定的文件把他编程一个输入流

上面是最核心的一步


看到第一节课结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值