联谊会总结网站建设对外宣传,做网站点击赚取广告费,wordpress首页视频,网络工程师的就业前景mybatis的#{}和${}的区别就像是 PreparedStatement 和statement , 使用${}接收的参数还需用Param注解修饰 , 推荐用#{}动态SQLMyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验#xff0c;你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如…mybatis的#{}和${}的区别就像是 PreparedStatement 和statement , 使用${}接收的参数还需用Param注解修饰 , 推荐用#{}动态SQLMyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。虽然在以前使用动态 SQL 并非一件易事但正是 MyBatis 提供了可以被用在任意 SQL 映射语句中的强大的动态 SQL 语言得以改进这种情形。动态 SQL 元素和 JSTL 或基于类似 XML 的文本处理器相似。在 MyBatis 之前的版本中有很多元素需要花时间了解。MyBatis 3 大大精简了元素种类现在只需学习原来一半的元素便可。MyBatis 采用功能强大的基于 OGNL 的表达式来淘汰其它大部分元素。代码演示select * from userid #{id}select last_insert_id()insert into user(name,password,address)values(#{name},#{pwd},#{address})insert into user(name,password,address)values(#{name},#{pwd},#{address})update username #{name},password #{pwd},address #{address}where id #{id}select *from user and name#{name} and password#{pwd} and address#{address} select *from userwhere id in#{id}select *from user and name#{name} and password#{pwd} and address#{address} insert into user(name,password,address)values(#{user.name},#{user.pwd},#{user.address})延迟查询开启配置(1-1)映射文件select deptId,deptName from dept where deptId #{deptId}selecte.empId empId,e.empName empName,e.deptId deptIdfrom emp e延迟查询映射文件(一对多)select empId,empName from emp where deptId #{deptId}selectd.deptId deptId,d.deptName deptNamefrom dept d测试Testpublic void test1() throws IOException {SqlSession session Dbutil.getSqlSession();List list session.getMapper(IUserDao.class).query();for (Dept dept : list) {System.out.println(dept.getList());}session.close();}缓存开启二级缓存select empId, empName,deptId from emp where empId #{empId}测试Testpublic void test1() throws IOException {SqlSession session Dbutil.getSqlSession();List list session.getMapper(IUserDao.class).query(1);for (Emp emp : list) {System.out.println(emp);}session.close();System.out.println(---------------);session Dbutil.getSqlSession();list session.getMapper(IUserDao.class).query(1);for (Emp emp : list) {System.out.println(emp);}session.close();}