1.23 mybatis入门

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。
MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
在这里插入图片描述
装服务端:

装客户端:12:59
右击此处,编辑属性
在这里插入图片描述

在这里插入图片描述
第一次打开是这样一个结构:
在这里插入图片描述
左侧是管理数据库的,而我们使用的话
用这个:
在这里插入图片描述
右键,select可以查看数据
在这里插入图片描述
17.01配置字体
在这里插入图片描述

在这里插入图片描述
18.00全部装好了
在这里插入图片描述
在这里插入图片描述
CRUD即增删改查

30.10
导入包:
在这里插入图片描述
导入以后
在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=zhangzhen
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
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.nowcoder.community.entity
mybatis.configuration.useGeneratedKeys=true
mybatis.configuration.mapUnderscoreToCamelCase=true

接下来编写实体类:
package com.nowcoder.community.entity;

import java.util.Date;

public class User {

private int id;
private String username;
private String password;
private String salt;
private String email;
private int type;
private int status;
private String activationCode;
private String headerUrl;
private Date createTime;

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;
}

public String getSalt() {
    return salt;
}

public void setSalt(String salt) {
    this.salt = salt;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public int getType() {
    return type;
}

public void setType(int type) {
    this.type = type;
}

public int getStatus() {
    return status;
}

public void setStatus(int status) {
    this.status = status;
}

public String getActivationCode() {
    return activationCode;
}

public void setActivationCode(String activationCode) {
    this.activationCode = activationCode;
}

public String getHeaderUrl() {
    return headerUrl;
}

public void setHeaderUrl(String headerUrl) {
    this.headerUrl = headerUrl;
}

public Date getCreateTime() {
    return createTime;
}

public void setCreateTime(Date createTime) {
    this.createTime = createTime;
}

@Override // alt+insert 快捷键,tostring方法,打印的时候方便检查
public String toString() {
    return "User{" +
            "id=" + id +
            ", username='" + username + '\'' +
            ", password='" + password + '\'' +
            ", salt='" + salt + '\'' +
            ", email='" + email + '\'' +
            ", type=" + type +
            ", status=" + status +
            ", activationCode='" + activationCode + '\'' +
            ", headerUrl='" + headerUrl + '\'' +
            ", createTime=" + createTime +
            '}';
}

}
数据访问组件,一般叫什么mapper

package com.nowcoder.community.dao;

import com.nowcoder.community.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;


@Repository//dao层一般用Repository,加此注解才能让spring容器装配这个bean
//mybatis特有的注解 mapper,与Repository功能一样
public interface UserMapper {//声明如下方法:

    User selectById(int id);//User为返回类型

    User selectByName(String username);

    User selectByEmail(String email);

    int insertUser(User user);//返回插入数据的行数

    int updateStatus(int id, int status);//返回修改的条数,status为最新的状态

    int updateHeader(int id, String headerUrl);

    int updatePassword(int id, String password);

}

为了实现,接下来需要写配置文件,写每个方法对应的sql,mybatis底层自动帮我们实现
在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nowcoder.community.dao.UserMapper"><!--表明该配置文件为哪个mapper服务-->

    <sql id="insertFields"><!--每个标签对应一个接口中的方法-->
        username, password, salt, email, type, status, activation_code, header_url, create_time
    </sql>
    <!--sql是什么意思-->
    <sql id="selectFields"> <!--设置待查询的字段-->
        id, username, password, salt, email, type, status, activation_code, header_url, create_time<!--单词容易写错-->
    </sql>

    <!--select标签,实现查询;id里面是方法名;返回类型是User-->
    <select id="selectById" resultType="User">
        select <include refid="selectFields"></include><!--表示引用的是selectFields中的id-->
        from user<!--表示从user中查询-->
        where id = #{id}<!--#{id}表示要引用方法的参数名id,其余id是字段-->
    </select>

    <select id="selectByName" resultType="User">
        select <include refid="selectFields"></include>
        from user
        where username = #{username}
    </select>

    <select id="selectByEmail" resultType="User">
        select <include refid="selectFields"></include>
        from user
        where email = #{email}
    </select>

    <insert id="insertUser" parameterType="User" keyProperty="id">
        insert into user (<include refid="insertFields"></include>)
        values(#{username}, #{password}, #{salt}, #{email}, #{type}, #{status}, #{activationCode}, #{headerUrl}, #{createTime})
    </insert>

    <update id="updateStatus">
        update user set status = #{status} where id = #{id}
    </update>

    <update id="updateHeader">
        update user set header_url = #{headerUrl} where id = #{id}
    </update>

    <update id="updatePassword">
        update user set password = #{password} where id = #{id}
    </update>

</mapper>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值