mybatis插入数据的问题希望大佬帮忙

Soft_E 2017-11-10 06:00:32
框架用的SSM数据库是Oracle像插入一条数据,字段id为主键但在数据库中没有设置自增长,而且表中有数据再不用序列的情况下怎么写这个插入的sql语句
...全文
718 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
htht555 2017-11-13
  • 打赏
  • 举报
回复
引用 26 楼 Soft_E 的回复:
[quote=引用 24 楼 htht555 的回复:] 哈哈 我也是菜鸟 你问问题直接问关键啊,你就直接问mybatis怎么生成uuid不就行了 是吧
我又遇到问题了我也不写帖子了还直接问你吧,要求是增删改查全部写成接口的,现在我用接口查出来全部了,想修改就要返回页面获取id来修改,但是返回页面这又不叫接口,纠结啊[/quote] 解决了吗?你私信我qq吧,这个贴了 你结了啊 哈哈 我刚好需要点分
Scott的博客 2017-11-12
  • 打赏
  • 举报
回复
引用 18 楼 Soft_E 的回复:
[quote=引用 13 楼 wgs_93 的回复:] 除了在Mybatis中使用uuid生成外,也可以在程序中写一个工具类,工具类的作用是生成一个ID,生成规则可以是 业务序号+20171111+16:20:18(换算成毫秒),然后将生成的ID作为参数传进到MyBatis中 业务序号+20171111(当天的年月日)+16:20:18(当前具体的时间,换算成毫秒)
大佬,我是个初学者,你教的我有点不懂[/quote] 就是以业务序号+时间戳作为数据库的主键。有了时间戳你的主键一般就不会出现重复的问题。同时也能通过时间戳中的时间(年月日+时分秒+具体毫秒数)+业务序号,直接通过ID看出这条数据是在哪天产生的。这样子的话,你的主键ID就不需要在SQL语句中去处理,通过java代码生成后,以传参的形式让Mybatis自动拼接具体的SQL语句即可
Soft_E 2017-11-12
  • 打赏
  • 举报
回复
引用 24 楼 htht555 的回复:
哈哈 我也是菜鸟 你问问题直接问关键啊,你就直接问mybatis怎么生成uuid不就行了 是吧
我又遇到问题了我也不写帖子了还直接问你吧,要求是增删改查全部写成接口的,现在我用接口查出来全部了,想修改就要返回页面获取id来修改,但是返回页面这又不叫接口,纠结啊
Soft_E 2017-11-12
  • 打赏
  • 举报
回复
引用 24 楼 htht555 的回复:
哈哈 我也是菜鸟 你问问题直接问关键啊,你就直接问mybatis怎么生成uuid不就行了 是吧
当时确实直接向勇uuid他错了我以为不能用所以想找个能用的方法,是我菜了
htht555 2017-11-11
  • 打赏
  • 举报
回复
哈哈 我也是菜鸟 你问问题直接问关键啊,你就直接问mybatis怎么生成uuid不就行了 是吧
Soft_E 2017-11-11
  • 打赏
  • 举报
回复
引用 22 楼 htht555 的回复:
we [quote=引用 21 楼 Soft_E 的回复:] [quote=引用 19 楼 htht555 的回复:] [quote=引用 16 楼 Soft_E 的回复:] [quote=引用 15 楼 htht555 的回复:] 你把错误贴出来,我看看
就这个[/quote] 你用oracle 用这个select sys_guid() from dual;[/quote] 我修改了一下代码,可以添加了,但是只有id是有值扎心啊[/quote] what?你debug 下 看其他值有没有传过去 [/quote]好了,已经全部解决多谢大佬
htht555 2017-11-11
  • 打赏
  • 举报
回复
we
引用 21 楼 Soft_E 的回复:
[quote=引用 19 楼 htht555 的回复:] [quote=引用 16 楼 Soft_E 的回复:] [quote=引用 15 楼 htht555 的回复:] 你把错误贴出来,我看看
就这个[/quote] 你用oracle 用这个select sys_guid() from dual;[/quote] 我修改了一下代码,可以添加了,但是只有id是有值扎心啊[/quote] what?你debug 下 看其他值有没有传过去
Soft_E 2017-11-11
  • 打赏
  • 举报
回复
引用 19 楼 htht555 的回复:
[quote=引用 16 楼 Soft_E 的回复:] [quote=引用 15 楼 htht555 的回复:] 你把错误贴出来,我看看
就这个[/quote] 你用oracle 用这个select sys_guid() from dual;[/quote] 我修改了一下代码,可以添加了,但是只有id是有值扎心啊
Soft_E 2017-11-11
  • 打赏
  • 举报
回复
引用 19 楼 htht555 的回复:
[quote=引用 16 楼 Soft_E 的回复:] [quote=引用 15 楼 htht555 的回复:] 你把错误贴出来,我看看
就这个[/quote] 你用oracle 用这个select sys_guid() from dual;[/quote] 我用的是oracle,换成这个还是无效的列类型
htht555 2017-11-11
  • 打赏
  • 举报
回复
引用 16 楼 Soft_E 的回复:
[quote=引用 15 楼 htht555 的回复:] 你把错误贴出来,我看看
就这个[/quote] 你用oracle 用这个select sys_guid() from dual;
Soft_E 2017-11-11
  • 打赏
  • 举报
回复
引用 13 楼 wgs_93 的回复:
除了在Mybatis中使用uuid生成外,也可以在程序中写一个工具类,工具类的作用是生成一个ID,生成规则可以是 业务序号+20171111+16:20:18(换算成毫秒),然后将生成的ID作为参数传进到MyBatis中 业务序号+20171111(当天的年月日)+16:20:18(当前具体的时间,换算成毫秒)
大佬,我是个初学者,你教的我有点不懂
Soft_E 2017-11-11
  • 打赏
  • 举报
回复
引用 14 楼 htht555 的回复:
[quote=引用 12 楼 Soft_E 的回复:] [quote=引用 8 楼 Soft_E 的回复:] [quote=引用 6 楼 htht555 的回复:] <selectKey keyProperty="id" resultType="java.lang.String"order="BEFORE"> select replace(uuid(),'-','') from dual </selectKey> mybatis可以这样生成,你有写吗
这个有试过当时没有成功[/quote] 用这个 select replace(uuid(),'-','') from dual报我uuid标识符无效[/quote] <selectKey keyProperty="id" resultType="java.lang.String"order="BEFORE"> 这个keyProperty="id"是你的主键 你有改吗?你直接在plsql里运行还是程序跑完报错[/quote] 有改 我的主键就是id,程序跑完没报错执行添加之后报的错
Soft_E 2017-11-11
  • 打赏
  • 举报
回复
引用 15 楼 htht555 的回复:
你把错误贴出来,我看看

就这个
htht555 2017-11-11
  • 打赏
  • 举报
回复
你把错误贴出来,我看看
htht555 2017-11-11
  • 打赏
  • 举报
回复
引用 12 楼 Soft_E 的回复:
[quote=引用 8 楼 Soft_E 的回复:] [quote=引用 6 楼 htht555 的回复:] <selectKey keyProperty="id" resultType="java.lang.String"order="BEFORE"> select replace(uuid(),'-','') from dual </selectKey> mybatis可以这样生成,你有写吗
这个有试过当时没有成功[/quote] 用这个 select replace(uuid(),'-','') from dual报我uuid标识符无效[/quote] <selectKey keyProperty="id" resultType="java.lang.String"order="BEFORE"> 这个keyProperty="id"是你的主键 你有改吗?你直接在plsql里运行还是程序跑完报错
Scott的博客 2017-11-11
  • 打赏
  • 举报
回复
除了在Mybatis中使用uuid生成外,也可以在程序中写一个工具类,工具类的作用是生成一个ID,生成规则可以是 业务序号+20171111+16:20:18(换算成毫秒),然后将生成的ID作为参数传进到MyBatis中 业务序号+20171111(当天的年月日)+16:20:18(当前具体的时间,换算成毫秒)
Soft_E 2017-11-11
  • 打赏
  • 举报
回复
引用 8 楼 Soft_E 的回复:
[quote=引用 6 楼 htht555 的回复:] <selectKey keyProperty="id" resultType="java.lang.String"order="BEFORE"> select replace(uuid(),'-','') from dual </selectKey> mybatis可以这样生成,你有写吗
这个有试过当时没有成功[/quote] 用这个 select replace(uuid(),'-','') from dual报我uuid标识符无效
Scott的博客 2017-11-11
  • 打赏
  • 举报
回复
除了在Mybatis中使用uuid生成外,也可以在程序中写一个工具类,工具类的作用是生成一个ID,生成规则可以是 业务序号+20171111+16:20:18(换算成毫秒),然后将生成的ID作为参数传进到MyBatis中
htht555 2017-11-11
  • 打赏
  • 举报
回复
引用 8 楼 Soft_E 的回复:
[quote=引用 6 楼 htht555 的回复:] <selectKey keyProperty="id" resultType="java.lang.String"order="BEFORE"> select replace(uuid(),'-','') from dual </selectKey> mybatis可以这样生成,你有写吗
这个有试过当时没有成功[/quote] <selectKey resultType="java.lang.Short" order="BEFORE" keyProperty="id"> SELECT SEQ_TEST.NEXTVAL FROM DUAL </selectKey> 试试这个
htht555 2017-11-11
  • 打赏
  • 举报
回复
引用 7 楼 Soft_E 的回复:
[quote=引用 5 楼 htht555 的回复:] [quote=引用 4 楼 Soft_E 的回复:] [quote=引用 3 楼 htht555 的回复:] [quote=引用 2 楼 Soft_E 的回复:] [quote=引用 1 楼 htht555 的回复:] 最傻的,不用思考的就是给ID给个值啊,插入式先查询ID最大的值,+1不就行了
id是用uuid这个函数添加的这能加1?[/quote] 哦哦 那你这几个数据是怎么加上去的[/quote] 这几个数据是在用mybatis之前用sys_guid()添加的现在换成mybatis好像不能用一直报无效的列类型: 1111这个错[/quote] 你添加是有生成UUID吗[/quote] insert into t_user values(sys_guid,#{username},#{password})这个吗?[/quote] insert into t_user values(#{id},#{username},#{password})这个吗?[/quote] UUID会set进当前对象中
加载更多回复(8)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧