获取插入postgresql后返回的自增id

<?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">
<mapper namespace="com.jeesite.modules.abs.dao.AssetDao">
    <select id="getData" parameterType="com.jeesite.modules.abs.entity.Asset"
            resultType="com.jeesite.modules.abs.entity.Asset">
        select id, asset_number, asset_name
        from abs.abs_asset
        where id = #{id}
    </select>
    <insert id="insertData" parameterType="java.util.HashMap">
        <selectKey resultType="java.lang.Integer" keyProperty="fid"
                   order="AFTER">
            select currval('abs.abs_asset_seq'::regclass) AS fid
        </selectKey>
        insert into abs.abs_asset (asset_number,asset_name)
        values (#{assetNumber},#{assetName})
    </insert>

    <insert id="insertData2" parameterType="java.util.HashMap">
        <selectKey resultType="java.lang.Integer" keyProperty="fid"
                   order="AFTER">
            select nextval('abs.abs_asset_seq'::regclass) AS fid
        </selectKey>
    </insert>

</mapper>
package com.jeesite.modules.abs.entity;

public class Asset {
    private Integer id;
    private String assetNumber;
    private String assetName;

    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getAssetNumber() {
        return this.assetNumber;
    }

    public void setAssetNumber(String assetNumber) {
        this.assetNumber = assetNumber;
    }

    public String getAssetName() {
        return this.assetName;
    }

    public void setAssetName(String assetName) {
        this.assetName = assetName;
    }
}

package com.jeesite.modules.abs.dao;

import com.jeesite.common.dao.CrudDao;
import com.jeesite.common.mybatis.annotation.MyBatisDao;
import com.jeesite.modules.abs.entity.Asset;

import java.util.HashMap;

@MyBatisDao(dataSourceName="ds3")
public interface AssetDao extends CrudDao<Asset> {
    Asset getData(Asset asset);

    Integer insertData (HashMap hashMap);
    Integer insertData2 (HashMap hashMap);

}

Service
package com.jeesite.modules.abs.service;

import com.alibaba.fastjson.JSON;
import com.jeesite.modules.abs.dao.AssetDao;
import com.jeesite.modules.abs.entity.Asset;
import com.jeesite.modules.cms.dao.ArticleDao;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

@Slf4j
@Service
public class AssetService {

    @Autowired
    private AssetDao assetDao;

    @Autowired
    private ArticleDao articleDao;

    public Asset getData(Asset asset) {
        return assetDao.getData(asset);
    }

    List<String> list = new ArrayList<>();

    public String createData(Asset asset) {
        HashMap<String, Object> hashMap = new HashMap<>();
        hashMap.put("assetNumber", asset.getAssetNumber());
        hashMap.put("assetName", asset.getAssetName());
        Integer t = assetDao.insertData(hashMap);

        log.info("1111111111111创建当前数据时生成的自增主键" + hashMap.get("fid"));
        log.info("2222222222222受影响的行数:" + t); //

        return hashMap.get("fid").toString();
    }

    public String createData2(Asset asset) {

        HashMap<String, Object> hashMap = new HashMap<>();
        hashMap.put("assetNumber", asset.getAssetNumber());
        hashMap.put("assetName", asset.getAssetName());
        Integer t = assetDao.insertData2(hashMap);
        for (int i = 0; i < 200; i++) {
            execute(asset);
        }
        log.error("创建当前数据时生成的自增主键----111111--" + JSON.toJSONString(list));
        return hashMap.get("fid").toString();
    }

    public void execute(Asset asset) {
        HashMap<String, Object> hashMap3 = new HashMap<>();
        hashMap3.put("assetNumber", asset.getAssetNumber());
        hashMap3.put("assetName", asset.getAssetName());
        Integer t3 = assetDao.insertData2(hashMap3);
        list.add(hashMap3.get("fid").toString());
    }
}

Controller
package com.jeesite.modules.abs.web;

import com.jeesite.common.config.Global;
import com.jeesite.common.web.BaseController;
import com.jeesite.modules.abs.entity.Asset;
import com.jeesite.modules.abs.service.AssetService;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.math3.optim.nonlinear.scalar.GoalType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.ArrayList;
import java.util.List;

@Slf4j
@Controller
@RequestMapping(value = "${adminPath}/abs/asset")
public class AssetController extends BaseController {

    @Autowired
    private AssetService assetService;

    @RequestMapping(value = "getData")
    @ResponseBody
    public List<Asset> getData(@RequestParam Integer id, @RequestParam String assetNumber) {

        log.warn("1111111111----id--" + id + ",--------assetNumber----" + assetNumber);

        Asset asset = new Asset();
        asset.setAssetNumber(assetNumber);
        asset.setId(id);
        List list = new ArrayList();
        list.add(assetService.getData(asset));
        return list;
    }

    @PostMapping(value = "createData")
    @ResponseBody
    public String addData(@Validated Asset asset) {
        return renderResult(Global.TRUE, assetService.createData(asset));
    }

    @PostMapping(value = "createData2")
    @ResponseBody
    public String addData2(@Validated Asset asset) {
        return renderResult(Global.TRUE, assetService.createData2(asset));
    }
}

建表语句
-- abs.abs_asset definition

-- Drop table

-- DROP TABLE abs.abs_asset;

CREATE TABLE abs.abs_asset (
	id int4 NOT NULL,
	asset_number varchar NULL,
	asset_name varchar NULL
);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值