本人JavaWeb初学者,这是学校一门课程的期末作业,之前已经写了不少了,但是由于一点误操作,导致项目有点崩盘,加上心态不是很好,所以把整个项目全部删除重做,这里记录一下我写整个项目的全过程。
环境是mysql + MyEclipes + Tomcat9.0
可视化工具是Navicat
这是某大学某学院的党建工作的网站,要求是实现栏目、文章和用户的增删改查。不是很难,要求的技术为jsp,servlet,过滤器等JavaWeb开发中较为简单的一些技术。
下面,开始工作,那么首先做的应该是设计数据库,数据库中应该包含三张表,t_user t_article 以及 t_column(这里由于所在工作室的命名规范,数据库命名一律为db_xxxxx,表的命名一律为t_xxxxx)
我们右键数据库,选择转储sql文件,这样就会得到这个数据库的建立语句,然后放到项目中,防止数据库丢失。
/*
Navicat MySQL Data Transfer
Source Server : Test
Source Server Version : 50717
Source Host : localhost:3306
Source Database : db_party
Target Server Type : MYSQL
Target Server Version : 50717
File Encoding : 65001
Date: 2017-06-06 14:24:40
*/
CREATE DATABASE `db_party`;
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for t_article
-- ----------------------------
DROP TABLE IF EXISTS `t_article`;
CREATE TABLE `t_article` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
`title` varchar(255) NOT NULL COMMENT '标题',
`author` varchar(255) NOT NULL COMMENT '作者',
`content` varchar(255) NOT NULL COMMENT '内容',
`click_times` int(11) NOT NULL DEFAULT '0' COMMENT '点击次数',
`publish_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '发布时间',
`type` varchar(255) NOT NULL COMMENT '所属类型',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for t_column
-- ----------------------------
DROP TABLE IF EXISTS `t_column`;
CREATE TABLE `t_column` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(255) NOT NULL COMMENT '名字',
`level` varchar(255) NOT NULL COMMENT '级别',
`pid` int(11) NOT NULL COMMENT '父id,0为根节点',
`isleaf` int(255) NOT NULL COMMENT '是否是叶子节点,1代表是,0代表不是',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for t_user
-- ----------------------------
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`username` varchar(255) NOT NULL COMMENT '用户名',
`password` varchar(255) NOT NULL COMMENT '密码',
`sex` int(255) NOT NULL COMMENT '性别,1代表男,2代表女',
`phone_num` varchar(255) NOT NULL COMMENT '电话',
`email` varchar(255) NOT NULL COMMENT '电子邮件',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
建好了数据库,下面正式开始开发
打开MyEclipes,右键,new一个Web Project,填好Project Name,选好Java和JavaEE的版本
注意这里我选择的只是我电脑里的版本,真正的选择要随你电脑上的版本而定
注意这里有一个选项,是自动生成web.xml文件,一定要勾选,之后我们很多东西可能会在里面配置,当然现在的版本也可以通过注解的方式进行配置,不过勾选上,以防万一嘛
然后,在MyEclipes中配置tomcat并将项目配置到tomcat中去,配置过程我就不再说了,有不明白的可以自行百度
开启tomcat,测试一下看新new出来的项目能不能跑通
出现如图所示的画面就证明已经跑起来了,并且现在正在运行的就是你的默认欢迎页面index.jsp
下面开始我们的后台封装,我们先来建立与数据库的连接,我们来配置一个c3p0连接池,至于配置连接池的好处嘛,大家还是自行百度
首先,我们先把该导的jar包导入进去,将jar包拷到WebRoot/WEB-INF/lib下,然后右键,Build Path,add to Build Path
下面我们开始写c3p0的配置文件,我们在根目录里new一个新的文件夹resource,然后开始写配置文件。关于c3p0的配置文件网上也很多,这里我把我的代码上传,大家也可以不看,直接自己配
<c3p0-config>
<default-config>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/db_partyproperty>
<property name="driverClass">com.mysql.jdbc.Driverproperty>
<property name="user">rootproperty>
<property name="password">mysqlproperty>
<property name="checkoutTimeout">30000property>
<property name="idleConnectionTestPeriod">300property>
<property name="initialPoolSize">100property>
<property name="maxIdleTime">300property>
<property name="maxPoolSize">100property>
<property name="minPoolSize">10property>
<property name="maxStatements">200property>
default-config>
c3p0-config>
需要提到的是,由于这个文件夹是作为配置文件的文件夹,所以需要右键,Build Path,Use as source folder 可以看到,resource文件夹瞬间地位就上升了
然后我们开始写工具类,在src文件夹中new一个新的Class,注意把包名起好,尽量不要写裸体类,进来之后,把和数据库相关的操作都封装在这个类里面,写好之后,记得写一下测试类,如图,如果控制台能正常输出,则说明一切正常
封装好了数据库,我们开始写实体类,比如我们先来实现用户的登录注册功能,那我们就先来写一个User的实体类,同样把类打好包,一般实体类我们放在entites包里面
然后在类中写出该实体类的属性,一般来讲是要和数据库中的字段一一对应的,属性要设为private,并添加get和set方法。MyEclipes中添加get和set方法是快捷键是shift+alt+s
写好实体类之后,开始写User的Dao层,Dao层里面一般是和数据库打交道的一些方法,无非也就是增删改查的一些方法
我们在src下面再new一个UserDao的类,注意外面的包名写好
然后里面写好增删改查等方法,比如我们刚刚写好的insert方法
写好方法之后最好是再写一个测试类测试一下方法写没写错,当然要是对自己有足够的信心不写也没有大问题
然后,再将其他方法写好,UserDao就算是写好了,当然我们这里写的比较简单,如果更严谨一点的话要先写接口,再写实现类,如果再严谨一点的话还要再写一个service层,这里我们就不那么麻烦了,如果对这方面有兴趣的可以自己去了解一下
我们就先介绍到这里,后面的我们会在后续文章继续介绍