周振林 周振林
首页
  • 前端文章

    • HTML
    • CSS
    • Tailwind CSS (opens new window)
    • JavaScript
    • Vue3
    • 其他
  • Spring
  • SpringMVC
  • Mybatis
  • 安装教程
  • 其他教程
  • 基础
  • 虚拟化
  • Docker
  • OpenStack
  • 心情杂货
关于
收藏

周振林

IT界的小学生
首页
  • 前端文章

    • HTML
    • CSS
    • Tailwind CSS (opens new window)
    • JavaScript
    • Vue3
    • 其他
  • Spring
  • SpringMVC
  • Mybatis
  • 安装教程
  • 其他教程
  • 基础
  • 虚拟化
  • Docker
  • OpenStack
  • 心情杂货
关于
收藏
  • Spring

  • SpringMVC

  • Mybatis

    • Mybatis CRUD
    • Mybatis参数
    • Mybatis返回类型
    • Mybatis动态SQL
    • Mybatis分页插件
    • Mybatis 其他
      • Mybatis其他
        • 自增id
        • 参数设置方式
        • 特殊字符
  • 安装教程

  • 其他教程

  • 后端
  • Mybatis
周振林
2025-11-28
目录

Mybatis 其他

# Mybatis其他

# 自增id

获取自增id

<insert id="insert" useGeneratedKeys="true" keyProperty="empId">
  insert into student(name,no) values(#{name},#{no})
</insert>
1
2
3

# 参数设置方式

#{}:底层使用 PreparedStatement 方式,SQL预编译后设置参数,无SQL注入攻击风险

${}:底层使用 Statement 方式,SQL无预编译,直接拼接参数,有SQL注入攻击风险 所有参数位置,都应该用 #{},需要动态表名等,才用 ${}

Connection connection =dataSource.getConnection();

String sql="select*from user where username =? and password = ?" //#仆底层预编译方式,
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1,"admin");preparedStatement.setString(2,"123456");

//${}底层拼接方式:SQL注入问题
String sql2="select * from user where username ='admin'and password = '123456'"
Statement statement=connection.createStatement();
statement.execute(sql2);
1
2
3
4
5
6
7
8
9
10

# 特殊字符

在xml中,以下字符需要用转义字符,不能直接写

原始字符 转义字符
& &
< <
> >
" "
' '
Last Updated: 2025/12/02, 11:22:00
Mybatis分页插件
开发环境配置

← Mybatis分页插件 开发环境配置→

最近更新
01
查询优化N+1
12-02
02
项目代码组织方式
12-02
03
Mybatis分页插件
12-02
更多文章>
Copyright © 2019-2025 鲁ICP备19032096号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×