A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天要大家掌握的是,Mybatis的crud操作,dao实现类的crud操作和配置文件的注意事项;大家把自己觉得重要的内容整理跟帖.

1 个回复

倒序浏览
本帖最后由 吴洪标 于 2019-3-11 12:00 编辑

今天要大家掌握的是Mybatis的crud操作,dao实现类的crud操作和配置文件的注意事项。大家把自己觉得重要的内容整理跟帖。
1.实体类的属性名和数据库中对应表中的列名尽量保持一致,这样可以省却额外的麻烦和可能的错误。如果不一致,则需要在主配置文件SqlMapConfig.xml中配置<resultMap>标签,将其一一对应。
       2.使用<properties>标签加载sql配置信息时,要将<dataSource>标签下的<property>的value属性设置成${jdbc:***}格式,这样{}内的参数会从sql配置文件中找到对应的。
       3. 使用<typeAliases>配置别名,只能配置domain中类的别名。<package name="com.itheima.domain"></package>这样配置之后,domain包下的所有类都配置了别名,别名就是类名,并且忽略大小写。
       4.配置别名后,当且仅当dao目录下的所有dao接口中只存在一个方法名为***(如findTotal)则可以如下调用:session.selectList("findTotal"),即参数statement可以只写方法名(即id)。
       5.在<insert>标签中插入<selectKey>标签,标签体中的sql语句为“selectlast_insert_id()”,则可以在插入语句执行之后返回刚插入那条记录的id,并且给对应对象的id属性赋值。
       6.占位符#{}只能在sql语句中使用,它将传入的数据都当成一个字符串,会对自动传入的数据加一个引号,因此需要在模糊查询传入参数时传入%号,如%王%解析为’%王%’。
        而${}的应用范围更广。在sql语句中它将传入的数据直接显示生成在sql中。如:order by ${user_id},如果传入的值是111,那么解析成sql时的值为order by 111,  如果传入的值是id,则解析成的sqlorder by id.
       #{}方式可以防止sql注入,而${}方式无法防止sql注入,因此一般情况在sql语句中尽量选择用#{}方式。

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马