mybatis 增删查改操作实践
keep_foolish 2018-03-14 09:50:29 浏览137 评论0摘要: 1.mybatis-config.xml 中定义typeAliases设置别名的时候,必须在setting标签之后。 2.一些别名已经被mybatis预先定义好,如map->Map 一样,详细看书。
1.mybatis-config.xml 中定义 typeAliases 设置别名的时候,必须在 setting 标签之后。
2. 一些别名已经被 mybatis 预先定义好,如 map->Map 一样,详细看书。
3.mappers 的命名空间一定要有良好的命名习惯,比如本次项目中的 com.radish.mapper.UserMapper.{id}
4.insert 和 update 标签都能设置 useGeneratedKeys
true 表示使用数据库支持的自增长规则。 如 mysql 就可以。 oracle 是通过序列实现的,是不一样的。
5.insert 标签中 #{name} #{age} 等表达式,如果传入参数是 User 类对象,就会去查询 name age 等字段,而如果传入的不是 User,
而是一个Map 集 ,就会以 name , age 为 key 去查询 value 来得到参数。
6.select * from table; 这种语句可以设置 resultType = "map" 然后返回的一条记录对应
一个map(String, Object) key 是列名, value 是属性。
7. 不过使用 resultType="map" 的形式接收数据不能非常好地描述一个模型。所以这时可以使用 JavaBeans
去接收这个结果。操作步骤:
一、在UserMapper.xml 中添加代码:
<resultMap id="userResultMap" type="user" >
<id property="id" column="id" />
<result property="name" column="name"/>
<result property="sex" column="sex" />
<result property="age" column="age" />
</resultMap> 上述代码定义了一个resultMap 的规范。
注意事项:
* user 是之前在 mybatis-config.xml 中对 com.radish.domain.User 定义过的别名
* column 属性对应的是数据表的列名。 property 表示数据库列映射到返回类型的属性名。
二、在后续的<select/> 中添加 resultMap="userResultMap" mybatis 就会将查询到的结果集一一向 user 类中的属性赋值。
然后写一个测试类:
public static void main(String[] args) {
// TODO Auto-generated method stub
SqlSession session = FKSqlSessionFactory.getSqlSession();
List<User> userList = session
.selectList("com.radish.mapper.UserMapper.listUserToResultMap");
for (User user : userList) {
System.out.println(user);
}
session.commit();
session.close();
} 测试台输出成功。
小笔记 如果事务不提交,数据库是不会有更改的,而控制台是有日志的输出的,错过一次。
附件下载: mybatist...[keep_foolish].1520992266.zip
用云栖社区APP,舒服~
【云栖快讯】云栖社区技术交流群汇总,阿里巴巴技术专家及云栖社区专家等你加入互动,老铁,了解一下? 详情请点击 评论 (0) 点赞 (0) 收藏 (0)相关文章
- MyBatis3-实现单表数据的增删查改
- 如何写好简历呢
- 8天学通MongoDB——第二天 细说增删查改
- 8天学通MongoDB——第二天 细说增删查改
- SQL Server 中BIT类型字段增删查改那点事
- Node连接MySQL并封装其增删查改
- 文件操作(增删查改)
- 深入实践Spring Boot2.1.3 实体持久化
- 《深入实践Spring Boot》一第2章 在Sprin…
- mybatis入门配置——基于xml配置