Mybatis 单表 常用增删改查
1.编写sql表,插入原始数据
-- 删除表
DROP TABLE testA;
-- 创建表
CREATE TABLE testA(
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
date1 DATETIME,
str_date VARCHAR(50),
date_str DATE
)
-- 插入数据
INSERT INTO testA(username,date1,str_date,date_str) VALUES('夕阳游子',NOW(),DATE_FORMAT(SYSDATE(),'%Y-%m-%d %h:%i:%s'),STR_TO_DATE('2018-12-26','%Y-%m-%d %h:%i:%s'));
2.编写实体类 TestA.java
package com.jtfr.pojo;
import java.util.Date;
public class TestA {
private int id;
private String username;
private Date date;
private String strDate;
private Date dateStr;
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 Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getStrDate() {
return strDate;
}
public void setStrDate(String strDate) {
this.strDate = strDate;
}
public Date getDateStr() {
return dateStr;
}
public void setDateStr(Date dateStr) {
this.dateStr = dateStr;
}
@Override
public String toString() {
return "TestA [id=" + id + ", username=" + username + ", date=" + date
+ ", strDate=" + strDate + ", dateStr=" + dateStr + "]";
}
}
3.编写Dao层 TestADao.java
package com.jtfr.mapper;
import java.util.List;
import com.jtfr.pojo.TestA;
public interface TestADao {
void insertTestA(TestA testA);
void updateTestA(TestA testA);
void deleteTestA(TestA testA);
List<TestA> findAll();
}
4.编写Dao层对应的 xml
<?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">
<!-- namespace必需是接口的全路径名 -->
<mapper namespace="com.jtfr.mapper.TestADao">
<resultMap id="TestA" type="com.jtfr.pojo.TestA"></resultMap>
<sql id="query_sql">
SELECT
t.`id`,
t.`username`,
t.`date1` date,
DATE_FORMAT(t.`str_date`,'%Y-%m-%d %h:%i:%s') strDate,
STR_TO_DATE(t.`date_str`, '%Y-%m-%d') dateStr
FROM testA t;
</sql>
<!-- 批量添加数据 -->
<!-- <insert id="insertUserList" parameterType="list">
INSERT INTO usertable VALUES
<foreach collection="list" item="user" index="0" separator="," >
( #{id}, #{username}, #{passwd})
</foreach>
</insert> -->
<insert id="insertTestA">
INSERT INTO testA
(
username
<if test="date != null">
,date1
</if>
<if test="strDate != null">
,str_date
</if>
<if test="dateStr != null">
,date_str
</if>
)
VALUES
(
#{username, jdbcType=VARCHAR}
<if test="date != null">
,#{date, jdbcType=TIMESTAMP}
</if>
<if test="strDate != null">
,DATE_FORMAT(#{dateStr}, '%Y-%m-%d %h:%i:%s')
</if>
<if test="dateStr != null">
,STR_TO_DATE(#{strDate}, '%Y-%m-%d %h:%i:%s')
</if>
)
</insert>
<update id="updateTestA">
UPDATE testA t SET
t.username=#{username}
<if test="date != null">
,t.date1=#{date}
</if>
<if test="strDate != null">
,t.str_date=DATE_FORMAT(#{dateStr},'%Y-%m-%d %h:%i:%s')
</if>
<if test="dateStr != null">
,t.date_str=STR_TO_DATE(#{strDate},'%Y-%m-%d %h:%i:%s')
</if>
WHERE t.id=#{id};
</update>
<delete id="deleteTestA">
<!-- 注意不能写成 testA t -->
DELETE FROM testA WHERE username=#{username};
</delete>
<select id="findAll" resultMap="TestA">
<include refid="query_sql"></include>
</select>
</mapper>
5.项目源码,Maven结构

下载地址:https://files.cnblogs.com/files/jtfr/MybatisMapperDemo.zip
Mybatis 单表 常用增删改查的更多相关文章
- mybatis 单表的增删改查
添加数据返回id mapper.xml mapper -> insert -> selectKey mybatis 内置别名
- Django学习笔记(10)——Book单表的增删改查页面
一,项目题目:Book单表的增删改查页面 该项目主要练习使用Django开发一个Book单表的增删改查页面,通过这个项目巩固自己这段时间学习Django知识. 二,项目需求: 开发一个简单的Book增 ...
- python全栈开发day61-django简单的出版社网站展示,添加,删除,编辑(单表的增删改查)
day61 django内容回顾: 1. 下载: pip install django==1.11.14 pip install -i 源 django==1.11.14 pycharm 2. 创建项 ...
- hibernate对单表的增删改查
ORM: 对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping) 实现对单表的增删改查 向区域表中增加数据: 第一步: 新建一个Da ...
- django模型层 关于单表的增删改查
关于ORM MTV或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库, 通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员 ...
- Mybatis(一)实现单表的增删改查
1.1 什么是Mybatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并 ...
- django 利用ORM对单表进行增删改查
牛小妹上周末,一直在尝试如何把数据库的数据弄到界面上.毕竟是新手,搞不出来,文档也看不懂.不过没关系,才刚上大学.今晚我们就来解释下,要把数据搞到界面的第一步.先把数据放到库里,然后再把数据从库里拿出 ...
- 1.SSM整合_单表的增删改查
目标:增删改查 环境:Maven+Eclipse+Tomcat7+JDK7 思维导图: 表结构 目录结构 依赖 <dependencies> <dependency> < ...
- Django中对单表的增删改查
之前的简单预习,重点在后面 方式一: # create方法的返回值book_obj就是插入book表中的python葵花宝典这本书籍纪录对象 book_obj=Book.objects.creat ...
随机推荐
- [洛谷P2296] NOIP2014 寻找道路
问题描述 在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 1 .路径上的所有点的出边所指向的点都直接或间接与终点连通. 2 .在满足条 ...
- 使用vue进行国际化
相对于网站等一些需求 我们有需要做国际化的需求,具体步骤如下: 首先安装 vue-i18n npm install vue-i18n import VueI18n from 'vue-i18n' Vu ...
- iOS---如何截图,如何将图片保存到相册
最近的项目中运用到了这两个功能,所以记录一下.做了一个小工程将两个方法结合到了一起 1 - (void)viewDidLoad { [super viewDidLoad]; UIButton * bt ...
- 阿里云推出SRT+杜比全景声直播方案,低成本打造高质量直播观感体验
超过200个国家和地区共5144万人观看:浙江卫视.东方卫视55城总收视达2.39,稳居同时段市场第一:优酷直播间63%观看晚会的用户参与了互动:微博68.2亿的主话题阅读量:2019天猫双11狂欢夜 ...
- JavaScript学习第一篇
在学习之前让我们了解了解JavaScript的由来 Javascript是一种web技术,最初起名叫LiveScript,它是Netscape开发出来一种脚本语言,其目的是为了扩展基本的Html的功能 ...
- 观察者模式使用WebForm实现的例子
观察者模式是一种可以描述一对多对象依赖关系的行为模式.当一个对象状态发生变化时,依赖它的其它对象会自动被更新状态.下面这个图展示了观察者模式的层级: 举个例子吧,我们某个报表界面现在有个dashboa ...
- Nginx 禁止IP访问 只允许域名访问
今天要在Nginx上设置禁止通过IP访问服务器,只能通过域名访问,这样做是为了避免别人把未备案的域名解析到自己的服务器IP而导致服务器被断网,从网络上搜到以下解决方案: Nginx的默认虚拟主机在用户 ...
- Flask学习 2修改路由规则 传入参数访问url
#!/usr/bin/env python # encoding: utf-8 """ @version: v1.0 @author: cxa @file: flask0 ...
- applicationContext.xml无错有红叉,Error occured processing XML 'Provider org.apache.xerces.parsers.解决方案
applicationContext.xml无错有红叉,网上讲的取消xml验证的方法没用... 甚至我的myeclipse10连windows-->perferences-->myecli ...
- Drone - 安装,搭配 GitLab 下的配置和使用
参考资料: Drone 官网地址:https://drone.io Drone 的 GitHub 地址:https://github.com/drone/drone 简介:https://imnerd ...