牛客网项目--MyBatis
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相关推荐
- 云服务器上部署仿牛客网项目
云服务器上部署仿牛客网项目 安装JRE 安装Maven 安装MySQL 给mysql导入数据 安装Redis 安装kafka 安装ElasticSearch Wkhtmltopdf 安装tomcat ...
- 牛客网项目1:开发社区首页
总结在先: ①首先根据每张表创建相对应的实体类,该实体类中的属性与表中的字段名相同: ②由于每张表都需要一些增删改查的方法,因此需要创建Mapper接口(每张表各一个),接口中放有对应表的增删改查方法 ...
- 仿牛客网项目第二章:开发社区登录模块(详细步骤和思路)
目录 1. 发送邮件 1.0 三步走 1.1 邮箱设置 1.2 Spring Email 1.3 模板引擎 1.4 发送邮件的过程 1.5 检验发送邮件的过程 2. 开发注册功能 2.0 注册功能的步 ...
- 仿牛客网项目第五,六章:异步消息系统和分布式搜索引擎(详细步骤和思路)
目录 1. Kafka:构建TB级异步消息系统 1.0 同步/异步消息的区别 1.1 项目的目的 1. 2 阻塞队列实现异步消息系统 1.4 Kafka入门 1.5 Spring整合Kafka 1.6 ...
- 牛客网项目3:注册、激活功能
思路汇总 ①注册功能: 首先在主页index,点击注册:<a class="nav-link" th:href="@{/register}">注册& ...
- ATeam社区(牛客网项目第三章)
这里写目录标题 1. 过滤敏感词 1.1 定义敏感词 1.2 定义前缀树 1.3 根据敏感词初始化前缀树 1.4 过滤敏感词的方法 1.5 前缀树过滤敏感词简述 2. 发布帖子 2.1 AJA使用示例 ...
- 牛客网项目 1.5Mybatis入门
MyBatis入 安装数据库 安装MySQL Server 安装MySQL Workbench 直接在官网下载,安装教程网上比较多,这里就不做演示了. 我使用的mysql installer,个人觉得 ...
- 牛客网项目(社区项目)知识整理
什么是Spring框架? 有很多模块组成,利用这些模块可以方便开发工作.这些模块是:核心容器(spring core)/数据访问和集成(Spring JDBC)/Web(Spring Web/MVC) ...
- 牛客网项目——前置技术(八):Kafka
文章目录 1. 阻塞队列 2. Kafka入门 2.1 基本概念 2.2 基本操作 3. Spring整合kafka 3.1 引入依赖 3.2 application.properties配置 3.3 ...
最新文章
- 独家 | NLP详细教程:手把手教你用ELMo模型提取文本特征(附代码论文)
- Java 网址短链接服务原理及解决方案
- 简述ajax的重构原因,Ajax 重构的步骤
- cglib动态代理和jdk动态代理的区别与应用
- Visual Studio 2008破解版本
- 一篇文章搞懂前端学习方法与构建知识体系,怎么做自己的职业规划
- 能伸能屈的拼音及解释
- svn增量打包部署_实现Jenkins+svn+bat批处理构建svn版本差异增量的自动化打zip包
- 3. laravel 包含头尾文件
- 前端小报 - 201812 月刊
- android7.1获取存储权限,Android外部存储
- unity材质球复制
- 服务器4通道内存性能测评,【华擎X99评测】两代多频对比 看DDR3/DDR4内存性能实测(全文)_华擎 X99-WS_主板评测-中关村在线...
- hiber泛型 spring
- 在线配资平台哪家正规?排名在前的有哪些平台?
- LibreCAD使用记录
- 如何系统学习一门编程语言? | 黑马程序员
- 山东大学单片机原理与应用实验 汇编程序实验2
- python+pyhyper实现识别图片中的车牌号
- netty对接青鸟消防主机
热门文章
- ios QQ登录已经安装QQ客户端但仍然提示下载QQ,您没有安装最新版本qq
- 关于HTAP与HSAP
- 用python写一个函数_Python基础-函数篇
- Linux云计算之OpenStack(Keyston - 认证服务)
- 深度学习100题(1)
- 字节(b)转换为千字节(kb)和兆(mb)的转换方法
- 查找字符串中某个字符出现的次数
- Bio::DB::GenBank, Bio::SeqIO
- 【unity】分享一个2D小游戏的完整制作教程——涂鸦跳跃demo
- 视频压缩在线网站,视频压缩在线压缩,视频压缩在线使用,在线压缩视频大小