您的位置:首页 > 其它

第四讲 属性名和字段名不一致的处理

2017-05-25 21:37 337 查看
一、数据库中表的设计

二、实体类

public
class
User {
[align=left]     [/align]
     private
int
id;
     private
String
name;
     private
String
password
;
[align=left]     [/align]
     public
int
getId() {
           return
id;
[align=left]     }[/align]
     public
void
setId(int
id) {
           this.id
=
id;
[align=left]     }[/align]
     public
String getName() {
           return
name;
[align=left]     }[/align]
     public
void
setName(String name) {
           this.name
=
name;
[align=left]     }[/align]
     public
String getPassword() {
           return
password;
[align=left]     }[/align]
     public
void
setPassword(String
password) {
           this.password
=
password;
     }
[align=left]     @Override[/align]
     public
String toString() {
           return
"User [id="
+ id
+ ", name="
+ name
+ ", password="
+ password
+
"]";
[align=left]     }[/align]
[align=left]     [/align]
[align=left]}[/align]

三、mapper映射文件

[align=left]     <!-- 查询单个用户 -->[/align]

     <select
id="selectUser"
resultType="User">

[align=left]           select * from user where id = #{id}[/align]

     </select>

四、问题:密码没有获取到

     原因:mybatis会根据查询的列名(会将列名转为小写)去进行设值(列名setter方法)。

五、解决列名和属性名不一致的办法

为列名指定别名,别名和Java实体类的属性名一致

     <select
id="selectUser"
resultType="User">
           select id,
Name, pwd
password
from user where id = #{id}

     </select>

   这里实际上是根据实体类中的setter方法名来判断是否一致的,属性名可以随便取。如:setPassword(String password),对应的
   属性名可以是sex或者其他都可以。
设置结果映射类型

     <select
id="selectUser"
resultMap="UserMap">
[align=left]           select id, Name, pwd from user where id = #{id}[/align]
[align=left]     </select>[/align]
[align=left]     [/align]

     <resultMap
type="User"
id="UserMap">
[align=left]           <!-- id标签为主键 -->[/align]
           <id
column="id"
property="id"/>
[align=left]           <!-- column是数据库中表的列名,property是对应实体类的属性名 -->[/align]
           <result
column="name"
property="name"/>
           <result
column="pwd"
property="password"/>


     </resultMap>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis 框架