账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    mybatis 里使用load data infile
    55
    0

    我在mybatis里使用 load data infile 。执行的时候报错了。

    <select  id="loadTest">       
    load data infile '/data/dawncms/qinghai/QHdx_userlogs/qhdx_userlogs_2019_08_08_08.txt' replace into table edu_userlog_jsdx character set utf8 fields terminated by ',' enclosed by '"' lines terminated by '\r\n' (businessid,content,contentExtends,type,startTime,endTime,platform,hasHD,isFirst)     
    </select >
    

    报错信息

    ### Error querying database.  Cause: java.sql.SQLException: sql injection violation, syntax error: syntax error, illegal charset : load data infile '/data/dawncms/qinghai/QHdx_userlogs/qhdx_userlogs_2019_08_08_08.txt' replace into table edu_userlog_jsdx character set utf8 fields terminated by ',' enclosed by '"' lines terminated by '\r\n' (`businessid`,`content`,`contentExtends`,`type`,`startTime`,`endTime`,`platform`,`hasHD`,`isFirst`)
    ### The error may exist in file [E:\eclipsespace\DawnCMS\target\classes\mybatis\cms\DataImportMapper.xml]
    ### The error may involve com.bootdo.cms.dao.DataImportDao.loadTest
    ### The error occurred while executing a query
    ### SQL: load data infile '/data/dawncms/qinghai/QHdx_userlogs/qhdx_userlogs_2019_08_08_08.txt' replace into table edu_userlog_jsdx character set utf8 fields terminated by ',' enclosed by '"' lines terminated by '\r\n' (`businessid`,`content`,`contentExtends`,`type`,`startTime`,`endTime`,`platform`,`hasHD`,`isFirst`)
    ### Cause: java.sql.SQLException: sql injection violation, syntax error: syntax error, illegal charset : load data infile '/data/dawncms/qinghai/QHdx_userlogs/qhdx_userlogs_2019_08_08_08.txt' replace into table edu_userlog_jsdx character set utf8 fields terminated by ',' enclosed by '"' lines terminated by '\r\n' (`businessid`,`content`,`contentExtends`,`type`,`startTime`,`endTime`,`platform`,`hasHD`,`isFirst`)
    ; uncategorized SQLException; SQL state [null]; error code [0]; sql injection violation, syntax error: syntax error, illegal charset : load data infile '/data/dawncms/qinghai/QHdx_userlogs/qhdx_userlogs_2019_08_08_08.txt' replace into table edu_userlog_jsdx character set utf8 fields terminated by ',' enclosed by '"' lines terminated by '\r\n' (`businessid`,`content`,`contentExtends`,`type`,`startTime`,`endTime`,`platform`,`hasHD`,`isFirst`); nested exception is java.sql.SQLException: sql injection violation, syntax error: syntax error, illegal charset : load data infile '/data/dawncms/qinghai/QHdx_userlogs/qhdx_userlogs_2019_08_08_08.txt' replace into table edu_userlog_jsdx character set utf8 fields terminated by ',' enclosed by '"' lines terminated by '\r\n' (`businessid`,`content`,`contentExtends`,`type`,`startTime`,`endTime`,`platform`,`hasHD`,`isFirst`)
    org.springframework.jdbc.UncategorizedSQLException: 
    1
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 高冷不撩人 普通会员 1楼

      在MyBatis中,"load data infile"命令用于从数据库中加载数据。这通常用于从CSV文件或JSON文件中读取数据。

      以下是一个简单的示例,说明如何使用MyBatis的"load data infile"命令从CSV文件中读取数据:

      xml <select id="selectData" resultType="com.example.YourEntity"> SELECT * FROM your_table WHERE column_name IN (#{csvFileColumn}, #{csvFileColumn2}) </select>

      在这个示例中,"#{csvFileColumn}"和"#{csvFileColumn2}"是用于引用CSV文件中列名的占位符。然后,你需要替换"your_table"和"your_table2"为你的数据库表名,"column_name"为你要读取的列名。

      注意,"load data infile"命令需要与你的数据库表和列的表结构匹配。如果它们不匹配,你可能需要在你的数据库配置文件中修改它们的映射。

      此外,"load data infile"命令可能不会从所有列中读取数据,除非这些列的类型是字符串或日期。如果它们是其他类型,你可能需要修改你的SQL查询以避免读取所有列。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部