精华内容
下载资源
问答
  • 为什么R.string.ID 返回的是串数字,而不是字符串?在setText()方法中经常会用到R.string.ID来显示字符串,直接将R.string.ID传入setText()方法中显示字符串,如:textview.setText(R.string.show);可是当我们在R....

    为什么R.string.ID 返回的是一串数字,而不是字符串?

    在setText()方法中经常会用到R.string.ID来显示字符串,直接将R.string.ID传入setText()方法中显示字符串,如:

    textview.setText(R.string.show);

    可是当我们在R.string.show后面加上一些东西的时候,显示出来的则是一串数字,如:

    textview.setText(R.string.show + "Hello");

    这时TextView不会显示完整的字符串,而是一串数字和后面的Hello。

    为什么呢?

    首先我们知道setText接收的是字符串类型,但它也支持资源索引方式赋值。所以我们直接用索引的方式也是可以显示字符串的。

    当你在索引的后面加上其他字符串或别的值的时候,索引就会被setText解读为一串数字。

    这时我们可以通过这个方法将字符串的资源索引转为String类型的字符串,这样再在后面加东西,就不会被setText解读为数字。

    getResources().getString(R.string.show);

    所以刚才的代码应该修改为:

    textview.setText(getResources().getString(R.string.show) + "Hello";

    这样两个字符串都能正常显示了。

    展开全文
  • 话不多说,直接开整!...因为返回id会自动注入进去,所以得选实体类来接收自增的id。 @Data public class SignIn implements Serializable { private long id;//注意id为long类型 private String owner;

    话不多说,直接开整!
    业务场景:签到表是个流程,等到审核完成后,需要将其从表数据自动添加至台账表中,方便台账表的导出功能的开发。所以我们得获取到批量插入的从表id,来维护主从表的关联关系。
    具体实现

    • 建立实体类:
      因为返回的id会自动注入进去,所以得选实体类来接收自增的id。
    @Data
    public class SignIn implements Serializable {
        private long id;//注意id为long类型
        private String owner;
        private String modifier;
        private String last_modified;
        private String created_at;
        private String modified_method;
        private String app_key;
        private String app_extend_key;
        private String canjiayixiangxin;
        private String canjiashijian;
        private String canjiaren;
        private String yanlianliushuihao;
    }
    
    • mapper的编写:
      注意点:正常的插入只需要parameterType=“”即可。
      我们需要返回id的话得多加以下三个:
      useGeneratedKeys=“true” :允许JDBC支持自动生成主键,需要驱动兼容(如果设置为true则这个设置强制使用自动生成主键,尽管一些驱动不能兼容但仍可正常工作)
      keyProperty=“id” :取id的key值
      keyColumn=“id”:设值id的值
    <!--插入数据至台账从表-->
        <insert id="insertParameter"  useGeneratedKeys="true" keyProperty="id" keyColumn="id" >
            insert into
            	${tableId}(
             owner,modifier,last_modified,created_at,modified_method,app_key,app_extend_key, canjiayixiangxin,canjiashijian,canjiaren,yanlianliushuihao)
            values
            <foreach collection="list" index="index" item="ids" separator=",">
                (
                #{ids.owner},#{ids.modifier},#{ids.last_modified},#{ids.created_at},#		{ids.modified_method},#{ids.app_key},#{ids.app_extend_key}, #{ids.canjiayixiangxin},#{ids.canjiashijian},#{ids.canjiaren},#{ids.yanlianliushuihao}
                )
            </foreach>
        </insert>
    
    • service层:
      前提是已拿到所需要插入的数据集合了。
      注意点:网上大把博客都忽略了一个点,大家也会经常遇到一个问题就是,返回的id在集合中会重复,下面会说下为什么出现这样的原因。
      原因 本质上我们批量插入时,是将一个实体类组成的集合执行插入语句,用foreach进行批量插入。
      我们将List<Map<String,Object>> 类型转成List<实体类>。使用mapToBean方法来转换。
      因为我们是循环转换的,所以每次都得在重新new一个对象,不然id就会被覆盖。
    //如果数据为空,结束,不需要再执行下去
    if (CollectionUtils.isEmpty(resultList)){
         return;
      }
     //格式化时间                       
     SimpleDateFormat sdfDay = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
     List<SignIn> signInList = new ArrayList<>();
     for (Map map : resultList){
     	map.put("created_at",sdfDay.format(map.get("created_at")));
     	map.put("canjiashijian",sdfDay.format(map.get("canjiashijian")));
     	map.put("last_modified",sdfDay.format(map.get("last_modified")));
     	map.remove("id");
     	//转为实体类,这里每次需要重新new一个对象,不然id会被覆盖成最后一个的id
     	SignIn signIn = new SignIn();
     	signInList.add(BeanUtils.mapToBean(map,signIn));
      }
    

    这样即可拿到所有插入的自增id。
    下面提供下Map转实体的方法给大家:

    public class BeanUtils {
    
        private BeanUtils() {throw new IllegalStateException();
        }
        /**
         * map转bean
         *
         * @param map
         * @param bean
         * @param <T>
         * @return
         */
        public static <T> T mapToBean(Map<String, Object> map, T bean) {
            BeanMap beanMap = BeanMap.create(bean);
            beanMap.putAll(map);
            return bean;
        }
    }
    

    自此全部结束,以上都是个人所言,如有不对,尽请指出,大家一起交流进步。谢谢!

    有需要源码的,或者有不理解,欢迎关注微信公众号来讨论,留言会回复的哦~

    欢迎微信搜索关注:《全员格子》!!!

    展开全文
  • mybatis 插入条数据返回相应数据ID

    万次阅读 2015-07-15 18:02:26
    mybatis 原来一般插入条数据这样 <insert id="insertLatLong" parameterType="map"> INSERT INTO gyLatLong ( userID, longitude, latitude) VALUES(#{userID}, #{longitude}, #{latitude}) 当然这样的话 ...

    mybatis 原来一般插入一条数据就这样

     <insert id="insertLatLong" parameterType="map">
     INSERT INTO  gyLatLong ( userID, longitude, latitude) 
     VALUES(#{userID}, #{longitude}, #{latitude})
     </insert>

    当然这样的话 其实他也是会返回1个 int值的。
    但是 这个 int 会一直是1. 因为他返回来的其实他影响的行数,
    也就是你插入一条数据, 他返回来的并不是你插入进去他数据的唯一ID

    查了网上的资料 才终于知道,

    <insert id="insertTaxiOrder"   parameterType="map" useGeneratedKeys="true" keyProperty="ID" > 
    
         INSERT INTO  tb_TaxiOrderInfo ( UserID, DriverID, StartAddress, EndAddress,PublicTime,StartLongitude,StartLatitude
            ) 
          VALUES  (#{userID}, 0, #{StartAdd}, #{EndAdd}, GETDATE(), #{Longitude}, #{Latitude}
          )

    其中加上 useGeneratedKeys=”true” keyProperty=“ID”

    这个意思就是说。 他在插入后, 会自动把插入的数据生成的ID

    塞入到你这个 keyProperty 后面设置的 ID 这个参数里面。

    执行之后 你直接取ID 的值就好了。

    我这里接收的 parameterType 是 map。
    所以在 之前 map 要有这个 key

    如果接收的是 实体类的话, 当然实体类里面就要定义ID 这个属性了

    展开全文
  • 当我们插入数据时往往需要当前插入数据的id,初学时比较笨,在插入之后再做遍查询来获取id,这样会出现很多的问题,然后自己去网上查了一下,发现可以直接返回id,直接上代码; 正常插入语句是这样的 <insert ...

    当我们插入数据时往往需要当前插入数据的id,初学时比较笨,在插入之后再做一遍查询来获取id,这样会出现很多的问题,然后自己去网上查了一下,发现可以直接返回id,直接上代码;
    正常插入语句是这样的

    <insert id="addTeacher" parameterType="zlh.meng.demo.bean.Teacher">
           insert into teacher(tsex,tbirth) values(#{tsex},#{tbirth})
     </insert>
    

    使用MySql和SQL server,我们只需要返回id时只需要加入useGeneratedKeys 和keyProperty即可,因为这两个数据库支持auto-generated key field

    <insert id="addTeacher" useGeneratedKeys="true" keyProperty="tid">
          insert into teacher(tsex,tbirth) values(#{tsex},#{tbirth})
    </insert> 
    

    useGeneratedKeys:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。MySql和SQLServer执行auto-generated key field,因此当数据库设置好自增长主键后,可通过JDBC的getGeneratedKeys方法获取。但像Oralce等不支持auto-generated key field的数据库就不能用这种方法获取主键了
    keyProperty:用于设置getGeneratedKeys方法或selectKey子元素返回值将赋值到领域模型的哪个属性中

    以上在网上很容易查到,使用之后我的id一直为1我猜到我可能踩坑了,原因可能有很多,大概就是要在插入之后再调用getID方法获取id,不能插入时获取,因为他是放到了bean的对象中,而不是返回值。

    展开全文
  • //js获取返回jsonArray中最后个对象的id maxId=eval(jsonArray数组)[eval(jsonArray数组).length-1]["id"];
  • Python 貌似并没有直接返回插入数据 id 的操作(反正我是没找到),但是我们可以变通一下,找到最新插入的数据 #!/usr/bin/env python3 # -*- coding: UTF-8 -*- import pymysql db = pymysql.connect(**...
  • mybatis插入条数据后返回主键id

    千次阅读 2019-02-22 19:46:16
    在bean的mapper配置文件的...id" 如: &lt;insert id="insert" useGeneratedKeys="true" keyProperty="id" parameterType="com.ajie.dao.pojo.TbBlog" &gt;
  • 插入条新数据,如何返回主键值idid是自动增长的。 具体的代码实现。。。。
  • Sql 插入记录返回主键id

    千次阅读 2018-05-17 08:28:56
    比如我现在的个student表的字段id(PK autoIncrement), name, school, tel, password。这五个,现在我要插入条记录,id是自动生成的, 不用传入。 应该这样: Connection conn = null; int id = 0; tr...
  • jdbcTemplate 实现插入条数据后吗,返回id KeyHolder key = new GeneratedKeyHolder(); PreparedStatementCreator psc = new PreparedStatementCreator() { @Override public PreparedStatement ...
  • myBatis插入操作后想返回自增 id 有多种方式 其中种使用率较高的就是: 在&lt;insert&gt;&lt;/insert&gt; 标签中添加 useGeneratedKeys 和 keyProperty 属性 具体操作可以看我另篇博客 ...
  • MyBatis插入数据的时候,返回该记录的id<insert id="insert" keyProperty="id" useGeneratedKeys="true"
 parameterType="com.demo.domain.CountRateConfig">
 insert into query_rate_config (code,partner_...
  • SpringBoot整合Mybatis插入数据返回数据库自增id非常简单,通过个注解可以搞定了 使用 @Options(useGeneratedKeys=true, keyProperty="id", keyColumn="id") 注解 插入条数据测试下 加上这个注解后,...
  • tp5添加条数据,并返回id

    千次阅读 2019-08-28 15:03:48
    添加数据后如果需要返回新增数据的自增主键,可以使用getLastInsID方法: Db::name('user')->insert($data); $userId = Db::name('user')->getLastInsID(); 或者直接使用insertGetId方...
  • tk通用mapper插入对象返回主键id

    千次阅读 2019-11-09 16:11:47
    tk通用mapper插入对象返回主键id 我这里是使用的tk通用mapper,插入的方法用的是insertUseGeneratedKeys(实体类) 这是我的插入方法,staff是我的个对象。这里是接口的实现类。 mapper层的话就是tk通用mapper,...
  • mysql数据库插入条新数据,返回新插入数据的主键Id mapping映射文件的sql语句 <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType=...
  • 添加数据后返回Id &lt;insert id="" parameterType="" useGeneratedKeys="true" keyProperty="id" keyColumn="id"&gt; useGeneratedKeys:必须设置...
  • insertselective返回主键ID

    千次阅读 2019-12-17 14:09:59
    发现返回影响条数,0失败,1为一条数据收到影响也就是成功,实体类属性id里面也没有主键映射上。 加上下面红线位置的即可 useGeneratedKeys=“true” keyProperty="pojo主键字段" 去实体类中即可拿到主键id ...
  • jsp页面点击按钮之后弹出个新查询用户的窗口,然后返回选中的用户id,在通过ajax查询返回相对的改变jsp页面的文本框的值 请问 当我按那个查询按钮之后,弹出那个查询窗口,选中相应的值之后,按确定之后会关闭...
  • ibatis新增数据后返回主键id

    千次阅读 2017-06-13 22:21:04
    首先我们看一下官方文件里面对这个的解释: 主要看上面的最后2个属性解释,useGeneratedKeys意思是指定主键生成方式是JDBC的方法生成 ...方法可以获取到了 下面是调用的代码: 在调用了insert
  • 使用MyBatis往MySQL数据库中插入条记录后,需要返回该条记录的自增id先看插入的配置文件:在insert的标签里加两个属性:useGeneratedKeys="true" keyProperty="id" ,这个keyProperty的id就是...
  • 在Java开发过程中,我们向数据库插入条数据,接下来需要返回这条数据的主键。 使用MyBatis框架 xml文件中: &lt;insert id="addUser" parameterType="User"&gt;  insert into ...
  • mybatis insert 返回主键id

    千次阅读 2019-01-04 12:19:38
    mybatis insert 返回主键id 、如果是springMVC框架的话。 前提条件: 需要在ibatis Configuration中设置UseGeneratedKeystrue Configuration cfg = new org.apache.ibatis.session.Configuration(); cfg....
  • Ibatis插入数据返回ID的方法

    千次阅读 2016-04-12 13:35:30
    ibatis插入数据返回ID的方法:主要就是利用seelctkey来获取这个ID值,但是oracle和mysql的区别还是很大的
  • sql插入后返回id

    千次阅读 2020-02-23 00:26:18
    当主键id是自增的情况下,添加条记录的同时,其主键id是不能使用的,当我们取出主键id的值发现id为null,但是有时我们需要该主键,这时我们该如何处理呢? 这时我们只需要在其对应xxxmapper.xml中加入以下属性即可...
  • 简单的总结一下如何在mysql中插入条数据后,返回该条数据的id ,假如之后代码需要这个id,这样做起来变得非常方便,内容如下: <insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" ...
  • INSERT返回主键ID

    千次阅读 2019-05-27 13:31:39
    接收返回的结果集,按照刚才的测试,结果集里应该只有个字段,那就是主键ID。然后通过 getInt(1) 来得到这个主键ID rs = ps . executeQuery ( ) ; while ( rs . next ( ) ) { id = rs . getInt ( 1 ) ;...
  • 使用MyBatis往数据库中插入条记录后,返回该条记录的主键值。 需要在mybatis的mapper.xml中指定keyProperty属性,示例如下: 如上图所示:我们增加了useGeneratedKeys="true" 和keyProperty="userId" ,userId...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,197,794
精华内容 879,117
关键字:

为什么一查看id就返回