Reading Together项目(二)

目录

一、MyBatis入门

二、社区首页开发

三、项目调试技巧

四、版本控制


一、MyBatis入门

1.数据库的相关操作

mysql -uroot -p
输入密码
create database community;
show databases;
use community;
//加载脚本文件 导入表
source F:/community-init-sql-1.5/init_schema.sql;

//导入数据
source F:/community-init-sql-1.5/init_data.sql;

ps:如果系统报“MySQL执行脚本时出现failed to open file ,error 2 时”

可能是某个进程占用了该文件所在的文件夹,解决方法:将该文件拷贝到其他文件夹中再试。

 2.MyBatis介绍

常用链接:使用手册icon-default.png?t=M5H6http://www.mybatis.org/mybatis-3

Spring整合的MyBatis手册icon-default.png?t=M5H6http://www.mybatis.org/Spring 

①核心组件:

        -SQLSessionFactory :用于创建SQLSession的工厂类。

        -SQLSession:MyBatis的核心组件,用于向数据库执行SQL。

        -主配置文件:XML配置文件,可以对MyBatis的底层行为作出详细的配置。

        -Mapper接口:DAO接口,在MyBatis中称为Mapper

        -Mapper映射器:用于编写SQL,并将SQL和实体类映射的组件,采用XML、注解均可实现

②示例  

      -使用MyBatis对用户表进行CRUD操作

       1) 在pom.xml中配置mysql和mybatis

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.16</version>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.0.1</version>
		</dependency>

        2)在application.properties中增加:

# DataSourceProperties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/community?characterEncoding=utf-8&useSSL=false&serverTimezone=Hongkong
spring.datasource.username=root
spring.datasource.password=XXX
#连接池的配置
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
#最大连接数
spring.datasource.hikari.maximum-pool-size=15
#保有的最小连接数
spring.datasource.hikari.minimum-idle=5
#链接空闲后多久关闭链接
spring.datasource.hikari.idle-timeout=30000

# MybatisProperties
#classes表示target下的class文件夹
mybatis.mapper-locations=classpath:mapper/*.xml
#实体类的存放位置,用来封装我们要找的数据
mybatis.type-aliases-package=com.nowcoder.community.entity
#启动自动增加主键 ID自增
mybatis.configuration.useGeneratedKeys=true
#让下划线的命名方式和驼峰式的命名方式表示相同的参数 user_name 和 userName
mybatis.configuration.mapUnderscoreToCamelCase=true

        3)新建entity文件夹,写实体类,封装数据库中表的数据,根据表的字段声明属性,属性名以驼峰式命名。        

        定义属性,定义get,set方法;定义toString。

public class User {

    private int id;
    private String username;
    private String password;


    public int getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }


    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

        4)在dao文件夹下写对应表的Mapper文件,只需要写接口不需要写实现类 UserMapper

        加@Mapper注解

        写增删改查抽象方法

@Mapper
public interface UserMapper {

    User selectById(int id);

    User selectByName(String username);

    User selectByEmail(String email);
//    返回插入的行数
    int insertUser(User user);
//返回修改的条数
    int updateStatus(int id, int status);
//更新头像的路径,返回更新的条数
    int updateHeader(int id, String headerUrl);
//更新密码
    int updatePassword(int id, String password);

}

        5)如果想要实现,就需要写配置文件。在配置文件中写sql语句,Mybatis会自动生成实现类。配置文件命名为 user-mapper.xml.写在 resources/mapper下。

解决一个连数据库的报错,报错内容很长,核心内容是:

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

解决办法:1)是给数据库赋予允许远程连接的权限,命令为:

//如果用root用户了就不用写这句
create user root@'%' identified by '写你设置的密码';

grant all privileges on *.* to root@'%' with grant option;

                2)再次确认,在所有涉及连数据库的配置文件中,用户名、密码、url都写对没有。

二、社区首页开发

1.开发流程

        -一次请求的执行过程

        DAO:数据访问层:先写实体类,再写Mapper

 2.分步实现:

        -开发社区首页,显示前十个帖子

        -开发分页组件,分页显示所有帖子

        步骤如下:

DAO:数据访问层:先写实体类,再写Mapper

        1)entity下写DiscussPost实体类,其中包含:属性,get/set方法,toString重写

        2)写Mapper(一张表,一个Mapper,是一个接口),名为DiscussPostMapper

                ①加@Mapper注解

                ②写要实现的抽象方法

        3)在resources/Mapper下新建配置文件实现Mapper里的方法

Service 业务层开发(可以对从数据库中查到的结果在业务层面进行一些处理)

        1)在service包下新建业务组件DiscussPostService,加@Service注解

        2)要用到DAO中的Mapper,因此要自动注入DiscussPostMapper

Controller(视图层)

        1)在controller文件下新建HomeController,加注解@Controller

        2)注入discussPostService和UserService

        3)定义方法:①@RequestMapping(XXX)指明访问路径

                                @定义方法,在方法内,从每个对应的service数据拿到想要的数据,根据需要拼接。

3.分页实现:

在entity包下新建page.class

三、项目调试技巧

1.响应状态码含义:http 各种状态码的含义

         补充:重定向可以实现低耦合的页面间的跳转

2.服务端断点调试技巧

        idea里打断点调

3.客户端断点调试技巧

        Chrome打断点调

4.设置日志级别,并将日志输出到不同的终端

        spring的logback。

        log分为好几个级别,可以通过设置打印各种级别的日志

        

5.log文件

        在resources下写logback-spring.xml在里面对log文件进行一系列设置来生成不同类别的log文件

四、版本控制

1.git

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值