mybatis 2 -常用数据操作

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

XML配置:

  <!-- 写入数据获取自增ID -->
  <insert id="insertLog"   parameterType="com.mamaguwen.entity.sys_loginlog"  useGeneratedKeys="true" keyProperty="logid">
      insert into  sys_loginlog  (UserName) values  (#{username})
  </insert>

测试代码:

@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 id="updateLog"   parameterType="com.mamaguwen.entity.sys_loginlog">
      update sys_loginlog set username=#{username}
      where LogId=#{logid}
  </update>
    /*
     * 更新数据
     */
    @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、返回单个字符串对象:

    <!-- -返回单字段内容 -->
   <select id="selectStringByKey"  resultType="String"  >
    select   UserName   from  sys_loginlog
    where LogId = #{logid}
  </select>
    /*
     * 返回当个简单对象
     */
    @Test
    public void selectStringByKey() {
        String record = loginlog.selectStringByKey(4);
        System.out.println("返回的字符串:" + record);
    }

4、返回List对象

<select id="selectLogList"    resultType="com.mamaguwen.entity.sys_loginlog">
       select * from  sys_loginlog
   </select>
    /*
     * 获取所有用户日志
     */
    @Test
    public void selectLogList() {
        List<sys_loginlog> list = loginlog.selectLogList();
        for (sys_loginlog log : list) {
            System.out.println(log.getUsername());
        }
    }

5、返回List<String> 对象

     <select id="selectUserNameList"    resultType="String">
       select UserName from  sys_loginlog
   </select>
    /*
     * 获取所有用户名
     */
    @Test
    public void selectUserNameList() {
        List<String> list = loginlog.selectUserNameList();
        for (String str : list) {
            System.out.println(str);
        }
    }

6、传入单个参数

     <select id="selectLogByKey"   resultType="com.mamaguwen.entity.sys_loginlog">
         select * from  sys_loginlog  Where LogId=#{logid}
     </select>
     
    /*
     * 根据主键获取日志
     */
    @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、执行存储过程:

    <!-- 执行存储过程 -->
     <select id="callProc"   resultType="String"  >
              <!--
                    drop procedure if exists ShowString;
                    CREATE PROCEDURE  ShowString(
                         Str VARCHAR(30)
                    )
                    BEGIN
                     select Str as Item;
                    END;
                    CALL  ShowString(‘rhythmk‘)
      -->
         call  ShowString (#{str})
     </select>
/*
     * 执行存储过程
     */
    @Test
    public void callProc() {
        String str = loginlog.callProc("rhytmk");
        System.out.println(str);
    }

8、批量写入数据

  <!-- 批量执行SQL -->
     <!--  生成SQL:
               insert into  sys_loginlog (username) values (‘a‘),(‘b‘)
      -->
     <insert id="insertBatch">
         insert into  sys_loginlog (username) values
         <foreach collection="list"  item="item"  index="index"  separator=",">
               (#{item.username})
         </foreach>
     </insert>
    /*
     * 批量写入
     */
    @Test
    public void insertBatch() {
        List<sys_loginlog> list = new ArrayList<sys_loginlog>();
        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、将字符串当参数出入进去

     <select id="selectLogByMap"     parameterType="Map"  resultType="com.mamaguwen.entity.sys_loginlog">
         select * from sys_loginlog
             where (username=#{username1} or username=#{username2} )
     </select>
  
    /*
     * 通过Map传入参数
     */
    @Test
  public   void   selectLogByMap()
  {
        Map<String, String> map=new HashMap<String,String>();
        map.put("username1", "rhythmk");
        map.put("username2", "wangkun");
       List<sys_loginlog> 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);
       }
  }

备注:

表结构:

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<sys_loginlog>  selectLogList();

    /*
     *  获取所有用户名
     * */
    List<String> selectUserNameList();

    /*
     * 根据主键获取日志
     * */
    sys_loginlog selectLogByKey(@Param("logid") int logid);

    /*
     * 执行存储过程
     * */
    String callProc(@Param("str") String str);

    /*
     * 批量写入
     * */
    int  insertBatch(List<sys_loginlog> list);

    /*
     *  通过Map传入参数
     * */
   List<sys_loginlog>   selectLogByMap(Map<String, String> 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<sys_loginlog> list = loginlog.selectLogList();
        for (sys_loginlog log : list) {
            System.out.println(log.getUsername());
        }
    }

    /*
     * 获取所有用户名
     */
    @Test
    public void selectUserNameList() {
        List<String> 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<sys_loginlog> list = new ArrayList<sys_loginlog>();
        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<String, String> map=new HashMap<String,String>();
        map.put("username1", "rhythmk");
        map.put("username2", "wangkun");
       List<sys_loginlog> 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);
       }
  }
}

时间: 2024-10-11 21:20:51

mybatis 2 -常用数据操作的相关文章

mongodb常用数据操作

1. shell操作 mongodb默认连接的是test数据库, 输入db,可以看到当前数据库为test, 接下来是常用的数据库操作 ????mongodb存储按照文档方式存储,各种操作均采用json格式串进行, ????????可以理解为. mongodb的集合就是关系数据库的表,集合里面可以装各种类型的数据,包括集合. ? ????show databases:显示数据库以及数据库所占空间. 简写为show dbs; ????use [dbname]: 选择数据库 ????show coll

SpringCloud或SpringBoot+Mybatis-Plus利用mybatis插件实现数据操作记录及更新对比

引文 本文主要介绍如何使用mybatis插件实现拦截数据库操作并根据不同需求进行数据对比分析,主要适用于系统中需要对数据操作进行记录.在更新数据时准确记录更新字段 核心:mybatis插件(拦截器).mybatis-Plus实体规范.数据对比 1.相关技术简介 mybatis插件: mybatis插件实际上就是官方针对4层数据操作处理预留的拦截器,使用者可以根据不同的需求进行操作拦截并处理.这边笔者不做详细描述,详细介绍请到官网了解,这里笔者就复用官网介绍. 插件(plugins) MyBati

mysql常用数据操作之查

将数据库查询单独开来是因为使用最多,也是技巧最多,同时面试最容易问的部分 简单查询 select * from table_name; select name,age from table_name; 模糊查询%和_ %表示0个或多个未知字符 _表示单个未知字符 select name,age from table_name where name='王%';查询姓王的人 select name,age from table_name where name='%天%';查询姓名中包含天的人 sel

Cocos数据篇[3.4](3) ——XML数据操作

[唠叨] XML 即 可扩展标记语言,在游戏开发中,常用于保存游戏数据信息,如最高分.游戏等级等信息,和描述一些资源等. 加载动画的plist文件.瓦片地图编辑器到处的地图格式tmx文件,实际上都是特定格式的xml文件. 另外 UserDefault 单例类保存的数据,也是存储在xml文件中的. Cocos2d-x 已经加入了 tinyxml2库 用于xml的解析.3.x版本位于external/tinyxml2下. 本节要介绍的就是:如何使用 tinyxml2库 来操作处理xml文件. [参考

Cocos2d-x数据篇03:XML数据操作

尊重原创:http://cn.cocos2d-x.org/tutorial/show?id=2421 [前言] XML即可扩展标记语言,在游戏开发中,常用于保存游戏数据信息,如最高分.游戏等级等信息,和描述一些资源等.加载动画的plist文件.瓦片地图编辑器到处的地图格式tmx文件,实际上都是特定格式的xml文件.另外 UserDefault 单例类保存的数据,也是存储在xml文件中的.Cocos2d-x 已经加入了 tinyxml2库 用于xml的解析.3.x版本位于external/tiny

laravel 数据操作

一.基本概念和概述 ① StdClass 对象=>基础的对象 ② Eloquent 模型对象(Model 对象)=>和模型相关的类对象 ③ Eloquent 集合=>可以简单理解为对象数组,里面的每一个元素都是一个Model 对象 ④ 普通查询构造器返回的是StcClass对象或者是由基础对象组成的数组 ⑤ Eloquent ORM返回的是 Eloquent对象(和模型相关的)或者是由模型对象组成的集合 二.创建 Mould 代码如下 <?php namespace App\Mod

求mybatis 对BLOB数据的操作以及base64格式的处理

原文:求mybatis 对BLOB数据的操作以及base64格式的处理 源代码下载地址:http://www.zuidaima.com/share/1550463715314688.htm 寻求一个从前台将图片转成base64格式,base64与BLOB的转换以及基于mybatis将BLOB数据插入数据库的范例.跪求! package com.zuidaima.mybatis; import java.io.ByteArrayOutputStream; import java.io.File;

java 常用Date操作

[java] view plain copy 获取年月日时分秒: [java] view plain copy package com.util; import java.text.DateFormat; import java.util.Calendar; import java.util.Date; public class Test { public void getTimeByDate(){ Date date = new Date(); DateFormat df1 = DateFor

Oracle事务和常用数据对象

防伪码:一寸光阴一寸金 前言:本次内容的相关知识点我们在学习sqlserver2008R2的时候介绍过一些,包括:事务.索引.视图等.那么今天我们学习在oracle上实现这些重要的内容,以实现数据库的优化. 一.事务 1.简介 事务是数据处理的核心,是业务上的一个逻辑单元,它能够保证其中对数据所有的操作,要么全部成功,要么全部失败.DBMS通过事务的管理来协调用户的并发行为,减少用户访问资源的冲突. 1)显示提交:当事务遇到COMMIT指令时,将结束事务并永久保存所有的更改的数据. 2)显示回滚