代码改变世界

17_8_30 Mybatis 入门

2017-08-30 00:54  小歪1991  阅读(120)  评论(0编辑  收藏  举报

$和#的区别:

#{}  占位符  等价于 加了''
 在预处理时,会把参数部分用一个占位符 ? 代替,执行sql类似下面的
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1,id);
select * from user where id=#{id}

${}   字符串拼接  直接拼接 没有加''
  则只是简单的字符串替换,类似下面的
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
select * from user where username like '%${username}%'   这里用#{username}就不行了 相当于 '%'username'%'

优先使用 #{}。因为 ${} 会导致 sql 注入的问题

${} 会导致 sql 注入的问题

二Dao的开发

三种种dao的实现方式:
1、原始dao的开发方式
2、使用Mapper代理形式开发方式
        a)直接配置Mapper代理
        b)使用扫描包配置Mapper代理---->推荐使用

三测试方法

四逆向工程

mybatis 官网下载

二三四参考"参考2"

参考1

参考2