Mybatis #和$的区别
1.#和$的区别 #相当于给数据加上引号,$不会对数据做处理
1.例如 #userId# userId 值要是 111 则 SQL中就会变成 "111" 而 $userId$ 将还是 111
2.#能在很大程度上防止SQL注入
3.$一般用于传递数据库对象,如表名
一般情况下,能使用#的不要使用$
2.myBatis编程步骤
1.创建SqlSessionFactory
2.通过SqlSessionFactory 创建 SqlSession
3.通过SqlSession 执行数据库操作
4.SqlSession.commit()提交事务
5.SqlSession.close()关闭会话
3.JDBC有哪些不足,MyBatis是如何解决的
1.数据库连接的创建和销毁浪费系统资源,mybatis 可配置数据库连接池
2.sql语句写在代码中不易维护,使用mybatis可以将sql配置在Mapper.xml文件中,与java分离
3.像sql中传递参数麻烦,因为where条件不一定,可能多也可能少,占位符需要和参数一一对应 ,myBatis可以将java对象映射到sql语句中
4.对结果集解析麻烦,解析前需要遍历,mybatis可将sql执行结果直接映射java的pojo对象