博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis 2 -常用数据操作
阅读量:4308 次
发布时间:2019-06-06

本文共 8982 字,大约阅读时间需要 29 分钟。

1、写入数据并获取自增ID

XML配置:

insert into sys_loginlog (UserName) values (#{username})

测试代码:

@Test    public void insertLog() {        sys_loginlog model = new sys_loginlog();        model.setIslogin(true);        model.setLoginip("127.0.0.1");        model.setLogintime(new Date());        model.setUsername("rhythmk");        int total = loginlog.insertLog(model);        System.out.println("影响数据条:" + total);        System.out.println("ID:" + model.getLogid());        /*         * 影响数据条:1 ID:4          */    }

2、更新数据

update sys_loginlog set username=#{username} where LogId=#{logid}
/*     * 更新数据     */    @Test    public void updateLog() {        sys_loginlog record = new sys_loginlog();        record.setLogid(4L);        record.setUsername("wangkun");        int total = loginlog.updateLog(record);        System.out.println("影响数据条:" + total);    }

3、返回单个字符串对象:

/*     * 返回当个简单对象     */    @Test    public void selectStringByKey() {        String record = loginlog.selectStringByKey(4);        System.out.println("返回的字符串:" + record);    }

4、返回List对象

/*     * 获取所有用户日志     */    @Test    public void selectLogList() {        List
list = loginlog.selectLogList(); for (sys_loginlog log : list) { System.out.println(log.getUsername()); } }

5、返回List<String> 对象

/*     * 获取所有用户名     */    @Test    public void selectUserNameList() {        List
list = loginlog.selectUserNameList(); for (String str : list) { System.out.println(str); } }

6、传入单个参数

/*     * 根据主键获取日志     */    @Test    public void selectLogByKey() {        sys_loginlog model = loginlog.selectLogByKey(5);        String str = String.format("id:%d,username:%s", model.getLogid(),                model.getUsername());        System.out.println(str);    }

7、执行存储过程:

/*     * 执行存储过程     */    @Test    public void callProc() {        String str = loginlog.callProc("rhytmk");        System.out.println(str);    }

8、批量写入数据

insert into sys_loginlog (username) values
(#{item.username})
/*     * 批量写入     */    @Test    public void insertBatch() {        List
list = new ArrayList
(); for (int i = 0, j = 10; i < j; i++) { sys_loginlog log = new sys_loginlog(); log.setUsername(String.format("wangkun%s", i)); list.add(log); } int total = loginlog.insertBatch(list); System.out.println("生成数据条:" + total); }

9、将字符串当参数出入进去

/*     * 通过Map传入参数     */    @Test  public   void   selectLogByMap()  {        Map
map=new HashMap
(); map.put("username1", "rhythmk"); map.put("username2", "wangkun"); List
list= loginlog.selectLogByMap(map); for(sys_loginlog model:list) { String info= String.format("id%d,username%s", model.getLogid(), model.getUsername()); System.out.println(info); } }

 10、#{}与${}的区别

     假如数据库 sys_loginlog表中有username=a,b两条数据。此时按下面配置文件,我传入'a','b'  则无法获取数据。 

现修改where条件,换成${},那么传入的参数讲直接体会SQL中对应的文本 :

select * from sys_loginlog     where   username in ( ${username} ) 通过执行上面语句 生成的SQL为 :     select * from sys_loginlog where username  in ('a','b')

备注:

   表结构:

CREATE TABLE `sys_loginlog` (  `LogId` bigint(20) NOT NULL AUTO_INCREMENT,  `UserName` varchar(64) COLLATE utf8_bin DEFAULT NULL,  `Pwd` varchar(32) COLLATE utf8_bin DEFAULT NULL,  `IsLogin` bit(1) DEFAULT NULL,  `LoginIp` varchar(64) COLLATE utf8_bin DEFAULT NULL,  `LoginTime` datetime DEFAULT NULL,  PRIMARY KEY (`LogId`)) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

 Mapp数据操作接口:

public interface sys_loginlogMapper {    /*     *   写入日志并返回自增的ID     * */    int insertLog (sys_loginlog record);        /*   更新数据     * */    int updateLog(sys_loginlog record);        /*      *   返回当个简单对象     * */    String selectStringByKey(@Param("logid") int logId );            /*     * 获取所有用户日志     * */    List
selectLogList(); /* * 获取所有用户名 * */ List
selectUserNameList(); /* * 根据主键获取日志 * */ sys_loginlog selectLogByKey(@Param("logid") int logid); /* * 执行存储过程 * */ String callProc(@Param("str") String str); /* * 批量写入 * */ int insertBatch(List
list); /* * 通过Map传入参数 * */ List
selectLogByMap(Map
map); }

 测试用例代码:

package com.mamaguwen.dao.test;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.management.loading.PrivateMLet;import org.apache.commons.lang3.time.DateFormatUtils;import org.apache.ibatis.annotations.Param;import org.apache.log4j.Logger;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.mamaguwen.dao.sys_loginlogMapper;import com.mamaguwen.entity.sys_loginlog;@RunWith(value = SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = { "classpath:spring.xml",        "classpath:spring-mybatis.xml" })public class TestSysloginlogMapper {    private static final Logger logger = Logger.getLogger(Test_SysUser.class);    private sys_loginlogMapper loginlog;    public sys_loginlogMapper getLoginlog() {        return loginlog;    }    @Autowired    public void setLoginlog(sys_loginlogMapper loginlog) {        this.loginlog = loginlog;    }    /*     * 写入日志并返回自增的ID     */    @Test    public void insertLog() {        sys_loginlog model = new sys_loginlog();        model.setIslogin(true);        model.setLoginip("127.0.0.1");        model.setLogintime(new Date());        model.setUsername("rhythmk");        int total = loginlog.insertLog(model);        System.out.println("影响数据条:" + total);        System.out.println("ID:" + model.getLogid());        /*         * 影响数据条:1 ID:4          */    }    /*     * 更新数据     */    @Test    public void updateLog() {        sys_loginlog record = new sys_loginlog();        record.setLogid(4L);        record.setUsername("wangkun");        int total = loginlog.updateLog(record);        System.out.println("影响数据条:" + total);    }    /*     * 返回当个简单对象     */    @Test    public void selectStringByKey() {        String record = loginlog.selectStringByKey(4);        System.out.println("返回的字符串:" + record);    }    /*     * 获取所有用户日志     */    @Test    public void selectLogList() {        List
list = loginlog.selectLogList(); for (sys_loginlog log : list) { System.out.println(log.getUsername()); } } /* * 获取所有用户名 */ @Test public void selectUserNameList() { List
list = loginlog.selectUserNameList(); for (String str : list) { System.out.println(str); } } /* * 根据主键获取日志 */ @Test public void selectLogByKey() { sys_loginlog model = loginlog.selectLogByKey(5); String str = String.format("id:%d,username:%s", model.getLogid(), model.getUsername()); System.out.println(str); } /* * 执行存储过程 */ @Test public void callProc() { String str = loginlog.callProc("rhytmk"); System.out.println(str); } /* * 批量写入 */ @Test public void insertBatch() { List
list = new ArrayList
(); for (int i = 0, j = 10; i < j; i++) { sys_loginlog log = new sys_loginlog(); log.setUsername(String.format("wangkun%s", i)); list.add(log); } int total = loginlog.insertBatch(list); System.out.println("生成数据条:" + total); } /* * 通过Map传入参数 */ @Test public void selectLogByMap() { Map
map=new HashMap
(); map.put("username1", "rhythmk"); map.put("username2", "wangkun"); List
list= loginlog.selectLogByMap(map); for(sys_loginlog model:list) { String info= String.format("id%d,username%s", model.getLogid(), model.getUsername()); System.out.println(info); } }}
View Code

 

转载于:https://www.cnblogs.com/rhythmK/p/4050184.html

你可能感兴趣的文章
phper必知必会之类库自动加载的七种方式(三)
查看>>
ansible模块介绍
查看>>
NOIP201307货车运输
查看>>
齐次坐标
查看>>
[SQLite]使用记录
查看>>
HttpRequest 类
查看>>
Qt使用信号与槽时出现的错误“Incompatible sender/receiver arguments”
查看>>
MYSQL:基础——触发器
查看>>
JavaScript:学习笔记(9)——Promise对象
查看>>
内存泄露检测 vld
查看>>
优秀HTML5网站学习范例:从“饥饿游戏浏览器”谈用户体验
查看>>
spring security原理
查看>>
js 验证各种格式类型的正则表达式
查看>>
POJ2392
查看>>
Form表单的主要Content-Type
查看>>
02ython基础知识(一)
查看>>
739. Daily Temperatures - LeetCode
查看>>
HDTV(1920x1080)码率和视频质量关系的研究 2 (实验结果)
查看>>
如何在使用摩托罗拉上的RSS阅读器应用进行一次订阅
查看>>
mahout贝叶斯算法开发思路(拓展篇)1
查看>>