情况是这样,我想让mysql返回执行的sql语句,然后再把sql语句发送到其他电脑或android的手机上让他们更新,问题是我使用的是DButil,怎么让他返回所执行的sql语句?之前要执行的sql是没有参数的动态sql例如
insert into admin_login(loginName,password,role) values(?,?,?)如何返回这样的sql语句
insert into admin_login(loginName,password,role) values("zhangsan","lisi","wangwu")

解决方案 »

  1.   

    写个返回String类型的方法
    String str=sql语句!
    把Str放到session 或其它东东里面
    只要执行的sql语句  你就调用这个方法!!!
    在另一边或的这个值!!!
      

  2.   


    找ORACLE提意見,在公開的API中,沒有
    要不你自己拼接
      

  3.   

    PrepareStatement是数据库本身提供的特性,而不是某种语言提供的,所以说在执行过程中根本没有产生insert into admin_login(loginName,password,role) values("zhangsan","lisi","wangwu")
    这个语句,驱动程序本来就是将带有占位符的语句和参数分开来送给DBMS的,而不是你所认为的进行了拼接
      

  4.   

    试想如果PrepareStatment也是通过占位符替换生成完整的SQL语句交给DBMS执行,那如何能解决得了防注入之类的问题你真的需要这个语句的话还是获取到设置进去的各个参数后自己动手替换吧