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 ...
随机推荐
- NIO编程之多客户端聊天系统
1. 服务端 import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; im ...
- HashMap底层代码分析
public HashMap() { this.loadFactor = DEFAULT_LOAD_FACTOR; //this.loadFactor为加载因子,其值为默认的加载因子常量:DEFAUL ...
- iOS10以上App请求用户授权系统设置权限
<key>NSAppleMusicUsageDescription</key> <string>使用媒体资源</string> <key>N ...
- php长连接和短连接的使用场景
短连接 连接->传输数据->关闭连接 比如HTTP是无状态的的短链接,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接. 具体就是 浏览器client发起并建立T ...
- HTML计算机代码元素
计算机代码 1 2 3 4 5 6 var person = { firstName:"Bill", lastName:"Gates", ...
- Cocoapods组件化之搭建组件化项目框架
一,概述 随着公司业务需求的不断迭代发展,工程的代码量和业务逻辑也越来越多,原始的开发模式和架构已经无法满足我们的业务发展速度了,这时我们就需要将原始项目进行一次重构大手术了.这时我们应该很清晰这次手 ...
- 字符串(二):string
字符串使用方法整理 系列: 字符串(一):char 数组 字符串(二):string string 是 C++ STL 的一个字符串类型,原型是 vector<char> 并对字符串处理做 ...
- 跨域、this指向
不要再问我跨域的问题了: https://segmentfault.com/a/1190000015597029?utm_source=tag-newest 不要再问我this的指向问题了: http ...
- linux 复制到远程服务器
scp 文件路径 root@192.168.0.1:文件夹路径 会提示你输入远程服务器密码
- Looper,Handler, MessageQueue
Looper Looper是线程用来运行消息循环(message loop)的类.默认情况下,线程并没有与之关联的Looper,可以通过在线程中调用Looper.prepare() 方法来获取,并通过 ...