使用“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);//加载指定的文件把他编程一个输入流
上面是最核心的一步
看到第一节课结束