项目学习记录-Day 1

本文介绍了JavaEE项目的三层架构,包括表现层、业务逻辑层和数据访问层,并详细讲述了项目设计过程,如用户数据表设计、JavaBean对象创建、JdbcUtils工具类的编写,以及如何导入和配置所需的jar包。
摘要由CSDN通过智能技术生成

JavaEE项目的三层架构

三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。
区分层次的目的即为了高内聚,低耦合的思想,对项目进行解耦,降低代码偶合程度,方便项目后期维护和升级

1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。

2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。

3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。

JavaWeb 实现流程分析
为此添加了相应的package:

web层/表现层(UI)com.forest.web/servlet/controller
业务逻辑层(UI)com.forest.serviceservice接口包
com.forest.service.implservice接口实现层
Dao持久层/数据访问层com.forest.daodao接口包
com.forest.dao.impldao接口实现层
实体bean对象com.forest.pojo/entity/domain/beanJavaBean类
测试包com.forest.test/junit
工具包com.forest.utiles

项目package分类:
项目package分类

项目设计

用户数据表设计

drop database if exists bookshop;                                #如果数据库--bookshop--存在,则删除

create database bookshop;                                        #创建数据库

use bookshop;                                                    #使用--use--命令来使用数据库,

create table t_user(
                       id int primary key auto_increment,
                       username varchar(20) not null unique ,
                       password varchar(32) not null ,
                       email varchar(200)
)engine=innodb auto_increment=1 , default charset=utf8;
                                                                 # engine=innodb : 存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
                                                                 #               因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)。

                                                                 # auto_increment=1 : 设计数据表从何处开始自增
                                                                 # default charset=utf8 : 设计数据表编码格式为utf-8

insert into bookshop.t_user(id, username, password, email) VALUES (default,'LiuForest-gitee','Lys641488578','641488578@qq.com');             #值的属性为自增时,使用--NULL/default--代替
insert into bookshop.t_user(id, username, password, email) VALUES (null,'forest','123456','lys641488578@outlook.com');

select * from bookshop.t_user;
  1. DROP :通过使用 DROP 语句,可以轻松地删除索引、表和数据库;
    DROP TABLE table_name语句用于删除数据表。
  2. 当数据表中某一数据值的属性为自增时,使用NULL/default代替

编写数据库表对应JavaBean对象

根据用户数据表中字段,User类中有id,username,password,email几个对象。

编写工具类JdbcUtiles

导入需要用到的jar包,

  1. Druid连接池(Druid-x.x.x.jar)

  2. Java 连接 MySQL 需要驱动包(mysql-connection-java-x.x.x-bin.jar)

  3. 用于测试使用的jar包(hamcrest-core-1.3.jar、junit-4.12.jar

  4. 在web项目文件的WEB-INF目录下创建一个lib文件夹用来存放所要用到的jar包;

  1. 添加jar包到项目依赖中去,这里有两种方法:
    第一种:
    右键点击lib文件夹-----》Add As Library … ,大功告成 O(∩_∩)O哈哈~
    第二种:(比较复杂)
    进入Project Structure配置页面 -----》
    在这里插入图片描述
    在这里插入图片描述
    下图中更改完添加的名称后,单击右下角Apply按钮。
    在这里插入图片描述
    完成后进入Modules选项,点击相应的需要用到jar包的项目:
    在这里插入图片描述
    再对更改进行修复:
    在这里插入图片描述
    最后我们再OK一下就OK了,哈哈,老壳好痛!
    在这里插入图片描述

在src目录下编写jdbc.properties属性配置文件

username = root            #数据库用户名
password = root            #数据库密码
url = jdbc:mysql://localhost:3306/bookshop       #数据库地址
DriverClassName = com.mysql.jdbc.Driver          #数据库连接驱动
initialSize = 5             #初始化,会在tomcat一启动时,创建5条连接
maxActive = 10              #数据库最大连接数

编写JdbcUtiles工具类

package com.forest.utils;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

public class JdbcUtils {

    private static DruidDataSource dataSource;

    static {
        try {
            Properties properties = new Properties();
            //读取jdbc.properties属性配置文件
            InputStream inputStream = JdbcUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
            //从流中加载数据
            properties.load(inputStream);
            //创建数据库连接池
            dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);
            //判断是否连接成功
            //System.out.println(dataSource.getConnection());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 获取数据库连接池中的连接
     * @return  如果返回null,则说明获取连接失败 <br /> 有值就是获取成功,
     */
    public static Connection getConnection(){
        Connection conn = null;
        try {
            conn = dataSource.getConnection();
        } catch (Exception e) {                        //为什么要用Exception替换SQLException????
            e.printStackTrace();
        }
        return conn;
    }

    /**
     * 关闭连接,放回数据库连接池,
     * @param conn
     */
    public static void close(Connection conn){
        if (conn != null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

在test包中创建测试类

package com.forest.test;

import com.forest.utils.JdbcUtils;
import org.junit.Test;

public class JdbcUtilesTest {

    @Test
    public void testJdbcUtiles(){
        System.out.println(JdbcUtils.getConnection());
    }
}

执行这个测试类之后,可得到数据库连接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值