Web基础教学项目(包含三层架构)

一、准备工作

1.1 下载软件

先下载好lntellij IDEA软件,可以下载官网的也可以下载绿色版破解版。安装好之后搭配环境,环境搭配好就可以新建项目,这里就不叫大家如何搭配环境了。

1.2 准备好数据库

创建mybatis数据库

运行数据库语句(语句放下面了)

create table user(
    id int unsigned primary key auto_increment comment 'ID',
    name varchar(100) comment '姓名',
    age tinyint unsigned comment '年龄',
    gender tinyint unsigned comment '性别, 1:男, 2:女',
    phone varchar(11) comment '手机号'
) comment '用户表';

insert into user(id, name, age, gender, phone) VALUES (null,'白眉鹰王',55,'1','18800000000');
insert into user(id, name, age, gender, phone) VALUES (null,'金毛狮王',45,'1','18800000001');
insert into user(id, name, age, gender, phone) VALUES (null,'青翼蝠王',38,'1','18800000002');
insert into user(id, name, age, gender, phone) VALUES (null,'紫衫龙王',42,'2','18800000003');
insert into user(id, name, age, gender, phone) VALUES (null,'光明左使',37,'1','18800000004');
insert into user(id, name, age, gender, phone) VALUES (null,'光明右使',48,'1','18800000005');
 

二、新建项目

1.1 新建项目步骤

然后点击工具栏的New新建项目

点击Spring lnitializr

选择Web勾选Spring Web

选择SQL勾选MyBatis Framework和MySQL Driver,然后点击Create创建项目

创建好如下图

1.2 新建包和类

首先点击cn.lzpu右键新建类

新建pojo的包和User类

创建好之后敲User类的代码(代码我给出下面了)

User的代码:

 private Integer id;
        private String name;
        private short age;
        private short gender;
        private String phone;

        public User(Integer id, String name, short age, short gender, String phone) {
            this.id = id;
            this.name = name;
            this.age = age;
            this.gender = gender;
            this.phone = phone;
        }

        public Integer getId() {
            return id;
        }

        public void setId(Integer id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public short getAge() {
            return age;
        }

        public void setAge(short age) {
            this.age = age;
        }

        public short getGender() {
            return gender;
        }

        public void setGender(short gender) {
            this.gender = gender;
        }

        public String getPhone() {
            return phone;
        }

        public void setPhone(String phone) {
            this.phone = phone;
        }

        @Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", name='" + name + '\'' +
                    ", age=" + age +
                    ", gender=" + gender +
                    ", phone='" + phone + '\'' +
                    '}';
        }

1.3 配置参数

#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
#连接数据库的用户名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=123456

1.4 新建接口

新建好敲相应的代码(代码我给到下面)

package cn.lzpu.mapper;

import cn.lzpu.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface UserMapper {
    @Select("SELECT * FROM mybatis.user;")
    public List<User> list();

1.5 编写运行程序

package cn.lzpu;

import cn.lzpu.mapper.UserMapper;
import cn.lzpu.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

@SpringBootTest
class SpringbootMybatisQuickstartApplicationTests {
    @Autowired
    private UserMapper userMapper;
    @Test
    public void contextLoads() {
        List<User> userList=userMapper.list();
        for (User user : userList){
            System.out.println(user);
        }
    }

    @Test
    public void testJdbc() throws Exception {
        //1. 注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");

        //2. 获取连接对象
        String url = "jdbc:mysql://localhost:3306/mybatis";
        String username = "root";
        String password = "lym036280";
        Connection connection = DriverManager.getConnection(url, username, password);

        //3. 获取执行SQL的对象Statement,执行SQL,返回结果
        String sql = "select * from user";
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery(sql);

        //4. 封装结果数据
        List<User> userList = new ArrayList<>();
        while (resultSet.next()){
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            short age = resultSet.getShort("age");
            short gender = resultSet.getShort("gender");
            String phone = resultSet.getString("phone");

            User user = new User(id,name,age,gender,phone);
            userList.add(user);
        }

        //5. 释放资源
        statement.close();
        connection.close();
    }
}

三、运行成功

四、三层架构

1.1建立逻辑处理层service和数据访问层dao

2.2 建立数据访问层的接口和实现类

在dao包创建EmpDao接口

EmpDao的代码块

package cn.zpu.dao;

import cn.zpu.pojo.Emp;

import java.util.List;

public interface EmpDao {
    //获取员工数据
    public List<Emp> listEmp();
}

 在dao包下的impl包创建EmpDaoA

package cn.zpu.dao.impl;

import cn.zpu.dao.EmpDao;
import cn.zpu.pojo.Emp;
import cn.zpu.utils.XmlParserUtils;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;

import java.util.List;

//@Component
@Repository
public class  EmpDaoA implements EmpDao {
    @Override
    public List<Emp> listEmp(){
        String file =this.getClass().getClassLoader().getResource("emp.xml").getFile();
        List<Emp> empList= XmlParserUtils.parse(file,Emp.class);
        return empList;
    }
}

3.3 建立逻辑处理接口和实现类

          在service包下创建Empservice接口

package cn.zpu.service;

import cn.zpu.pojo.Emp;

import java.util.List;

public interface Empservice {
    //获取员工列表
    public List<Emp> listEmp();
}

在service包下的impl包下创建EmpserviceA 

package cn.zpu.service.impl;

import cn.zpu.dao.EmpDao;
import cn.zpu.dao.impl.EmpDaoA;
import cn.zpu.pojo.Emp;
import cn.zpu.service.Empservice;

import java.util.List;

public class EmpserviceA implements Empservice {
    private EmpDao empDao =new EmpDaoA();
    @Override
    public List<Emp> listEmp(){
        List<Emp> empList = empDao.listEmp();
        for (Emp emp:empList){
            String gender = emp.getGender();
            if("1".equals(gender)){
                emp.setGender("男");
            }else {
                emp.setGender("女");
            }
            String job = emp.getJob();
            if("1".equals(job)){
                emp.setJob("讲师");
            }else if("2".equals(job)){
                emp.setJob("班主任");
            }
            else {
                emp.setJob("就业指导");
            }
        }
        return empList;
    }

}

4.4 修改Controller

 

5.5 运行成功截图

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值