1. 安装软件:

MySQL

官网下载–>在根目录下,新建文件夹my.ini–>

  • 对mysql进行初始化

    • 配置环境变量,将mysql的bin目录配置到path中;
    • 对mysql进行初始化,密码设定等,

      启动mysql

net start mysql
登录mysql
mysql -uroot -p
建库导入数据表
source ‘sql文件的文件路径’

mysql-workbenth/navicat

装载客户端,可视化界面;本机上使用navicat
从官网下载,正常安装即可;
建立连接即可

MyBatis

核心组件

  • SqlSessionFactory:用于创建SqlSession的工厂类。
  • SqlSession: MyBatis的核心组件,用于向数据库执行SQL。
    -主配置文件:XML配置文件,可以对MyBatis的底层行为做出详细的配置。
  • Mapper接口:就是DAO接口(会有实现的机制,不用写实现类),在MyBatis中习惯性的称之为Mapper。
  • Mapper映射器:用于编写SQL,并将SQL和实体类映射的组件,采用XML、注解均可实现。·
  • 示例:使用MyBatis对用户表进行CRUD操作。

http://www.mybatis.org/mybatis-3
http://www.mybatis.org/spring

前三个组件被springboot整合,不需要自己实现

示例

前置操作
对用户表user,用mybatis进行增删改的操作
在项目中导入包

配置文件:


实体类:


代码部分:
创建user类

package com.nowcoder.community.entity;import java.util.Date;public class User {private int id;private String username;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 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;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", salt='" + salt + '\'' +", email='" + email + '\'' +", type=" + type +", status=" + status +", activationCode='" + activationCode + '\'' +", headerUrl='" + headerUrl + '\'' +", createTime=" + createTime +'}';}
}

创建Usermapper的抽象类,访问数据库,在Dao层中写。不用写实现类,

package com.nowcoder.community.dao;import com.nowcoder.community.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
//添加注解,装配bean
@Mapper
public interface UserMapper {User selectById(int id);User selectByName(String name);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);
}

提供配置文件
mapper文件夹下创建*.xml文件

注意写全限定名(完整的包名)


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nowcoder.community.dao.UserMapper"><sql id="selectFields">id, username,password,salt,email,type,status,activation_code,header_url, create_time</sql><select id="selectById" resultType="User">select id, username,password,salt,email,type,status,activation_code,header_url, create_timefrom userwhere id=#{id}</select><select id="selectByame" resultType="User">select id, username,password,salt,email,type,status,activation_code,header_url, create_timefrom userwhere name=#{username}</select><select id="selectByame" resultType="User">select id, username,password,salt,email,type,status,activation_code,header_url, create_timefrom userwhere email=#{email}</select></mapper>


完整增改查的操作,并在测试类里面验证

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nowcoder.community.dao.UserMapper"><sql id="insertFields">id, username,password,salt,email,type,status,activation_code,header_url, create_time</sql><sql id="selectFields">id, username,password,salt,email,type,status,activation_code,header_url, create_time</sql><select id="selectById" resultType="User">select <include refid="selectFields"></include>from userwhere id=#{id}</select><select id="selectByame" resultType="User">select <include refid="selectFields"></include>from userwhere name=#{username}</select><select id="selectByame" resultType="User">select <include refid="selectFields"></include>from userwhere 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>
package com.nowcoder.community;import com.nowcoder.community.dao.UserMapper;
import com.nowcoder.community.entity.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;import java.util.Date;@RunWith(SpringRunner.class)
@SpringBootTest
@ContextConfiguration(classes = CommunityApplication.class)
public class MapperTests {@Autowired//注入beanprivate UserMapper userMapper;@Testpublic void testSelectUser(){User user=userMapper.selectById(101);System.out.println(user);user=userMapper.selectByName("liubei");System.out.println(user);user=userMapper.selectByEmail("nowcoder101@sina.com");System.out.println(user);}@Testpublic void testInsertUser(){User user=new User();user.setUsername("test");user.setPassword("123456");user.setSalt("abc");user.setEmail("test@qq.com");user.setHeaderUrl("http://www.nowcoder.com/101.png");user.setCreateTime(new Date());int rows=userMapper.insertUser(user);System.out.println(user);System.out.println(user.getId());}@Testpublic void updateUser(){int rows=userMapper.updateStatus(150,1);System.out.println(rows);rows=userMapper.updateHeader(150,"http://www.nowcoder.com/101.png");System.out.println(rows);rows=userMapper.updatePassword(150,"123456789");System.out.println(rows);}
}

调试技巧
设置日志级别

logger

#logging.level.com.nowcoder.community=debug
#logging.file=d:/work/data/nowcoder/community.log

牛客网项目--MyBatis相关推荐

  1. 云服务器上部署仿牛客网项目

    云服务器上部署仿牛客网项目 安装JRE 安装Maven 安装MySQL 给mysql导入数据 安装Redis 安装kafka 安装ElasticSearch Wkhtmltopdf 安装tomcat ...

  2. 牛客网项目1:开发社区首页

    总结在先: ①首先根据每张表创建相对应的实体类,该实体类中的属性与表中的字段名相同: ②由于每张表都需要一些增删改查的方法,因此需要创建Mapper接口(每张表各一个),接口中放有对应表的增删改查方法 ...

  3. 仿牛客网项目第二章:开发社区登录模块(详细步骤和思路)

    目录 1. 发送邮件 1.0 三步走 1.1 邮箱设置 1.2 Spring Email 1.3 模板引擎 1.4 发送邮件的过程 1.5 检验发送邮件的过程 2. 开发注册功能 2.0 注册功能的步 ...

  4. 仿牛客网项目第五,六章:异步消息系统和分布式搜索引擎(详细步骤和思路)

    目录 1. Kafka:构建TB级异步消息系统 1.0 同步/异步消息的区别 1.1 项目的目的 1. 2 阻塞队列实现异步消息系统 1.4 Kafka入门 1.5 Spring整合Kafka 1.6 ...

  5. 牛客网项目3:注册、激活功能

    思路汇总 ①注册功能: 首先在主页index,点击注册:<a class="nav-link" th:href="@{/register}">注册& ...

  6. ATeam社区(牛客网项目第三章)

    这里写目录标题 1. 过滤敏感词 1.1 定义敏感词 1.2 定义前缀树 1.3 根据敏感词初始化前缀树 1.4 过滤敏感词的方法 1.5 前缀树过滤敏感词简述 2. 发布帖子 2.1 AJA使用示例 ...

  7. 牛客网项目 1.5Mybatis入门

    MyBatis入 安装数据库 安装MySQL Server 安装MySQL Workbench 直接在官网下载,安装教程网上比较多,这里就不做演示了. 我使用的mysql installer,个人觉得 ...

  8. 牛客网项目(社区项目)知识整理

    什么是Spring框架? 有很多模块组成,利用这些模块可以方便开发工作.这些模块是:核心容器(spring core)/数据访问和集成(Spring JDBC)/Web(Spring Web/MVC) ...

  9. 牛客网项目——前置技术(八):Kafka

    文章目录 1. 阻塞队列 2. Kafka入门 2.1 基本概念 2.2 基本操作 3. Spring整合kafka 3.1 引入依赖 3.2 application.properties配置 3.3 ...

最新文章

  1. 独家 | NLP详细教程:手把手教你用ELMo模型提取文本特征(附代码论文)
  2. Java 网址短链接服务原理及解决方案
  3. 简述ajax的重构原因,Ajax 重构的步骤
  4. cglib动态代理和jdk动态代理的区别与应用
  5. Visual Studio 2008破解版本
  6. 一篇文章搞懂前端学习方法与构建知识体系,怎么做自己的职业规划
  7. 能伸能屈的拼音及解释
  8. svn增量打包部署_实现Jenkins+svn+bat批处理构建svn版本差异增量的自动化打zip包
  9. 3. laravel 包含头尾文件
  10. 前端小报 - 201812 月刊
  11. android7.1获取存储权限,Android外部存储
  12. unity材质球复制
  13. 服务器4通道内存性能测评,【华擎X99评测】两代多频对比 看DDR3/DDR4内存性能实测(全文)_华擎 X99-WS_主板评测-中关村在线...
  14. hiber泛型 spring
  15. 在线配资平台哪家正规?排名在前的有哪些平台?
  16. LibreCAD使用记录
  17. 如何系统学习一门编程语言? | 黑马程序员
  18. 山东大学单片机原理与应用实验 汇编程序实验2
  19. python+pyhyper实现识别图片中的车牌号
  20. netty对接青鸟消防主机

热门文章

  1. ios QQ登录已经安装QQ客户端但仍然提示下载QQ,您没有安装最新版本qq
  2. 关于HTAP与HSAP
  3. 用python写一个函数_Python基础-函数篇
  4. Linux云计算之OpenStack(Keyston - 认证服务)
  5. 深度学习100题(1)
  6. 字节(b)转换为千字节(kb)和兆(mb)的转换方法
  7. 查找字符串中某个字符出现的次数
  8. Bio::DB::GenBank, Bio::SeqIO
  9. 【unity】分享一个2D小游戏的完整制作教程——涂鸦跳跃demo
  10. 视频压缩在线网站,视频压缩在线压缩,视频压缩在线使用,在线压缩视频大小