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 单表 常用增删改查的更多相关文章

  1. mybatis 单表的增删改查

    添加数据返回id mapper.xml mapper -> insert -> selectKey mybatis 内置别名

  2. Django学习笔记(10)——Book单表的增删改查页面

    一,项目题目:Book单表的增删改查页面 该项目主要练习使用Django开发一个Book单表的增删改查页面,通过这个项目巩固自己这段时间学习Django知识. 二,项目需求: 开发一个简单的Book增 ...

  3. python全栈开发day61-django简单的出版社网站展示,添加,删除,编辑(单表的增删改查)

    day61 django内容回顾: 1. 下载: pip install django==1.11.14 pip install -i 源 django==1.11.14 pycharm 2. 创建项 ...

  4. hibernate对单表的增删改查

    ORM: 对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping) 实现对单表的增删改查 向区域表中增加数据: 第一步: 新建一个Da ...

  5. django模型层 关于单表的增删改查

    关于ORM MTV或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库, 通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员 ...

  6. Mybatis(一)实现单表的增删改查

    1.1 什么是Mybatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并 ...

  7. django 利用ORM对单表进行增删改查

    牛小妹上周末,一直在尝试如何把数据库的数据弄到界面上.毕竟是新手,搞不出来,文档也看不懂.不过没关系,才刚上大学.今晚我们就来解释下,要把数据搞到界面的第一步.先把数据放到库里,然后再把数据从库里拿出 ...

  8. 1.SSM整合_单表的增删改查

    目标:增删改查 环境:Maven+Eclipse+Tomcat7+JDK7 思维导图: 表结构 目录结构 依赖 <dependencies> <dependency> < ...

  9. Django中对单表的增删改查

    之前的简单预习,重点在后面 方式一: # create方法的返回值book_obj就是插入book表中的python葵花宝典这本书籍纪录对象   book_obj=Book.objects.creat ...

随机推荐

  1. NIO编程之多客户端聊天系统

    1. 服务端 import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; im ...

  2. HashMap底层代码分析

    public HashMap() { this.loadFactor = DEFAULT_LOAD_FACTOR; //this.loadFactor为加载因子,其值为默认的加载因子常量:DEFAUL ...

  3. iOS10以上App请求用户授权系统设置权限

    <key>NSAppleMusicUsageDescription</key> <string>使用媒体资源</string> <key>N ...

  4. php长连接和短连接的使用场景

    短连接 连接->传输数据->关闭连接 比如HTTP是无状态的的短链接,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接. 具体就是 浏览器client发起并建立T ...

  5. HTML计算机代码元素

    计算机代码 1 2 3 4 5 6 var person = {     firstName:"Bill",     lastName:"Gates",     ...

  6. Cocoapods组件化之搭建组件化项目框架

    一,概述 随着公司业务需求的不断迭代发展,工程的代码量和业务逻辑也越来越多,原始的开发模式和架构已经无法满足我们的业务发展速度了,这时我们就需要将原始项目进行一次重构大手术了.这时我们应该很清晰这次手 ...

  7. 字符串(二):string

    字符串使用方法整理 系列: 字符串(一):char 数组 字符串(二):string string 是 C++ STL 的一个字符串类型,原型是 vector<char> 并对字符串处理做 ...

  8. 跨域、this指向

    不要再问我跨域的问题了: https://segmentfault.com/a/1190000015597029?utm_source=tag-newest 不要再问我this的指向问题了: http ...

  9. linux 复制到远程服务器

    scp 文件路径 root@192.168.0.1:文件夹路径 会提示你输入远程服务器密码

  10. Looper,Handler, MessageQueue

    Looper Looper是线程用来运行消息循环(message loop)的类.默认情况下,线程并没有与之关联的Looper,可以通过在线程中调用Looper.prepare() 方法来获取,并通过 ...