故事背景: 依照原系统的框子搞一个新的系统给其他人使用,因为新的系统配置库依然需要使用原有的表,表中有字段区分新的系统,然后就有了这个很没劲的数据同步. 难点:配置库码表数据的主键之前是自增,后来改造改成18位有意义的字符序列,但是由于部分小哥哥小姐姐不按照规范写,导致表中主键有部分数据是前几位一样,有的是后几位一样. 数据同步方案一: 使用截取原有主键一部分,再在其前面拼接上日期入表 (有主见冲突),本来规定的就是年份+日期+各组编号+个人编号+000三位的扩展,脚本写完执行时发现数据完全不是…
在写存储过程时经常会遇到需要拼接SQL语句的情况,一般情况下仅仅是为了执行拼接后的语句使用exec(@sql)即可. 而今天的一个存储过程却需要获取动态SQL的查询结果. 需求描述:在某表中根据Id值查询Cost值(表名不确定但表结构确定,如下面的Product表) 如果不考虑获取返回值,我们这样写即可: ) ) ,) ) set @tableName='Product' ' set @sql='select Cost from '+@tableName+' where Id='+@id exe…
当jdbc返回值类型对应的java类型是[B,那就表示返回值的类型比较模糊难以区分: BLOB类型是mysql数据库常用来存储,但是通过getBlob()方法获取值得时候会报错: 错误信息: java.lang.IllegalArgumentException: Can not set [B field yxm.zyf.love.entity.User.user_certify_pic to com.mysql.jdbc.Blob at sun.reflect.UnsafeFieldAccess…
一.返回值Map 1.mapper.xml <select id="selectUserMapLimitOne" resultType="java.util.HashMap"> select id,name from user order by id desc limit 1 </select> 2.接口定义 /** * 获取仅含一个的map(map的size=字段个数) * @return */ Map<String,Object&g…
问题来源: <深入理解C#(第3版)> 11页 具体如下: var lists=new List<string>{"111","222","333","1","2"}; foreach(var item in lists.where(x=>x.length>2)) { Console.WriteLine(item); } 如果愿意,完全可以使用Action 进行输入上述的…
sql中修改字符串类型的字段可以这么拼接:update tbName set UserName='abc'+UserName; 但mysql中就不行了,需要这样:update tbName set UserName=CONCAT('abc',UserName); 把查询出来的多个值,赋值给多个变量, sql:SELECT @oldOrderId=M_ORDERID,@oldParentId=M_PARENTID,@oldOrderPath=M_ORDERPATH FROM S_Menu WHER…
select : 返回对象:  <select  id = " "  resultType= "对象的全类名"  /> List: <select  id = " "  resultType = "list泛型中的值" /> Map: 1.返回一条记录 Map<String,Object>      key -> 字段 value -> 值                    …
存储过程: create procedure proc_t(out uname varchar(50),out upwd varchar(50),in uid int) BEGIN select name,pwd into uname,upwd from bbs where id=uid; end ---------- 如何在mysql里调用这个存储过程获得uname,upwd的值     答案 call proc_t(@uname,@upwd,5);select @uname,@upwd ;…
查询user表中,user_name字段值重复的数据及重复次数 select user_name,count(*) as count from user group by user_name having count>1;…
解决方案: status_flag * 1 as status_flag 乘以1之后就不会是boolean类型的值了…