目录结构

创建数据库相应的表

一个账户对应一个用户
accout

CREATE TABLE `account` (`aid` int(11) NOT NULL AUTO_INCREMENT,`accountname` varchar(20) DEFAULT NULL,`money` float(10,2) DEFAULT NULL,`userId` int(11) DEFAULT NULL,PRIMARY KEY (`aid`),KEY `userId` (`userId`),CONSTRAINT `account_ibfk_1` FOREIGN KEY (`userId`) REFERENCES `user` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

user

CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(20) DEFAULT NULL,`PASSWORD` varchar(20) DEFAULT NULL,`sex` varchar(2) DEFAULT NULL,`birthday` date DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8;

domain 实体类

Account

package com.william.domain;/*** @author :lijunxuan* @date :Created in 2020/2/2  20:35* @description :* @version: 1.0*/
public class Account {Integer aid;String accountname;Float money;Integer userId;User user;@Overridepublic String toString() {return "Account{" +"aid=" + aid +", accountname='" + accountname + '\'' +", money=" + money +", userId=" + userId +", user=" + user +'}';}public Integer getAid() {return aid;}public void setAid(Integer aid) {this.aid = aid;}public String getAccountname() {return accountname;}public void setAccountname(String accountname) {this.accountname = accountname;}public Float getMoney() {return money;}public void setMoney(Float money) {this.money = money;}public Integer getUserId() {return userId;}public void setUserId(Integer userId) {this.userId = userId;}public User getUser() {return user;}public void setUser(User user) {this.user = user;}
}

User

package com.william.domain;/*** @author :lijunxuan* @date :Created in 2020/2/2  20:37* @description :* @version: 1.0*/
public class User {Integer id;String username;String PASSWORD;String sex;String birthday;@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", PASSWORD='" + PASSWORD + '\'' +", sex='" + sex + '\'' +", birthday='" + birthday + '\'' +'}';}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPASSWORD() {return PASSWORD;}public void setPASSWORD(String PASSWORD) {this.PASSWORD = PASSWORD;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getBirthday() {return birthday;}public void setBirthday(String birthday) {this.birthday = birthday;}
}

mapper Dao

package com.william.mapper;import com.william.domain.Account;
import com.william.domain.QueryVo;
import com.william.domain.Usert;
import org.apache.ibatis.annotations.Param;import java.util.HashMap;
import java.util.List;public interface Usermapper {List<Account> findByhaha();
}

mapper.xml 映射文件

可以有两种配置方式:

方式一:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.william.mapper.Usermapper"><resultMap id="accoutMap" type="account"><id property="aid" column="aid"></id><result property="accountname" column="accountname"></result><result property="money" column="money"></result><result property="userId" column="userId"></result><result property="user.id" column="id"></result><result property="user.username" column="username"></result><result property="user.PASSWORD" column="PASSWORD"></result><result property="user.sex" column="sex"></result><result property="user.birthday" column="birthday"></result></resultMap><select id="findByhaha" resultMap="accoutMap">select * from account a ,user u where a.userId=u.id;</select>
</mapper>

方式二:使用association标签

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.william.dao.AccountDao"><resultMap id="resultMap" type="account"><id column="aid" property="aid"></id><result column="accountname" property="accountname"></result><result column="money" property="money"></result><result column="userId" property="userId"></result><!--association ; 关联 联想 配置一对一映射--><!--property :属性名javaType : 属性的类型--><association property="user" javaType="user"><id column="id" property="id"></id><result column="username" property="username"></result><result column="PASSWORD" property="PASSWORD"></result><result column="sex" property="sex"></result><result column="birthday" property="birthday"></result></association></resultMap><select id="findAll" resultMap="resultMap">select * from account a,user u where a.userId=u.id;</select>
</mapper>

配置文件

1.db.properties 数据库配置文件

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/web02
jdbc.user=root
jdbc.password=root

2.log4j.properties日志文件

# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE            debug   info   warn error fatal
log4j.rootCategory=debug, CONSOLE, LOGFILE, info# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:\axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

3.核心配置文件Mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><properties resource="db.properties"></properties><typeAliases><package name="com.william.domain"></package></typeAliases><environments default="develoment"><environment id="develoment"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"></property><property name="url" value="${jdbc.url}"></property><property name="username" value="${jdbc.user}"></property><property name="password" value="${jdbc.password}"></property></dataSource></environment></environments><mappers><!--<mapper resource="com/william/Mapper.xml"></mapper>--><package name="com.william.mapper"></package></mappers>
</configuration>

test测试类

package com.william.test;import com.william.domain.Account;
import com.william.domain.QueryVo;
import com.william.domain.Usert;
import com.william.mapper.Usermapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;import java.io.IOException;
import java.util.HashMap;
import java.util.List;/*** @author :lijunxuan* @date :Created in 2020/2/2  13:28* @description :* @version: 1.0*/
public class TestMyBatis {/*** 查询所有的账户相同的*/@Testpublic void selectAll(){try {SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("Mybatis-config.xml"));SqlSession sqlSession = sqlSessionFactory.openSession(true);Usermapper mapper = sqlSession.getMapper(Usermapper.class);List<Account> list = mapper.findByhaha();for (Account account : list) {System.out.println(account.getAid());System.out.println(account);}} catch (IOException e) {e.printStackTrace();}}
}

测试结果

Mybatis一对一结果映射相关推荐

  1. (转)MyBatis框架的学习(五)——一对一关联映射和一对多关联映射

    http://blog.csdn.net/yerenyuan_pku/article/details/71894172 在实际开发中我们不可能只是对单表进行操作,必然要操作多表,本文就来讲解多表操作中 ...

  2. MyBatis的关联映射之 一对一(嵌套查询/嵌套结果)

    关联映射概述 在实际的开发中,对数据库的操作常常会涉及多张表,这在面向对象中就涉及了对象与对象之间的关联关系 针对多表之间的操作, MyBatis 提供了关联映射,通过关联映射就可以很好地处理对象与对 ...

  3. mybatis (高级映射 缓存 延迟加载)

    1     一对一查询映射的pojo 创建pojo包括 订单信息和用户信息,resultType才可以完成映射. 一个订单对应一个用户   因此在订单实体类中 我们应该加入一个用户属性  实体类如下: ...

  4. Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件

    封面:洛小汐 作者:潘潘 若不是生活所迫,谁愿意背负一身才华. 前言 上节我们介绍了 < Mybatis系列全解(四):全网最全!Mybatis配置文件 XML 全貌详解 >,内容很详细( ...

  5. Java基础-SSM之mybatis一对一关联

    Java基础-SSM之mybatis一对一关联 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.准备测试环境(创建数据库表)  1>.创建husbands和wifes表并建 ...

  6. 第4章 MyBatis的关联映射和缓存机制

    目录/Contents 第4章 MyBatis的关联映射和缓存机制 学习目标 了解数据表之间的三种关联关系 了解对象之间的三种关系 熟悉关联关系中的嵌套查询和嵌套结果 掌握一对一关联映射 掌握一对多关 ...

  7. MyBatis Review——输入输出映射

    一,输入映射 mybatis的输入映射通过parameterType指定,可以为简单类型,包装类型,hashmap类型. 1,简单类型 <select id="findUserByNa ...

  8. MyBatis的高级映射之多对一

    第五节 MyBatis的高级映射之多对一 2016年3月4日 星期五 09:25 使用传统方式的形式 使用MyBatis的方式 这样会产生两条语句 使用ResultMap的方式,对结果进行映射和转换, ...

  9. mybatis collection标签_一对多的关系,在MyBatis中如何映射?

    # 使用collection标签 需求:根据用户id查询用户信息的同时获取用户拥有的角色,一个用户可以拥有1个或多个角色. 一般情况下,不建议直接修改数据库表对应的实体类. 所以这里我们延用之前博客中 ...

最新文章

  1. linux 内核 sscanf,linux sscanf()
  2. python调用js库中的函数_Python 调用JS文件中的函数
  3. Eclipse中启动tomcat报错java.lang.OutOfMemoryError: PermGen space的解决方法
  4. 小程序分享到朋友圈功能_小程序开发日记 分享到朋友圈
  5. Docker 镜像-管理-导入-导出
  6. google海底光缆图_谷歌地图资讯-2013版“海底光缆地图”发布
  7. mysql 主从_mysql主从复制异常中断分析处理
  8. web 网页设计规范介绍
  9. MySQL二进制日志文件格式
  10. haosou属于搜索引擎的_中国的搜索引擎有哪些?
  11. 敢不敢用一年时间改变你自己?
  12. 国美易卡借助云平台,国美易卡提升了用户体验
  13. 会计英文(中英文对照)
  14. web调用摄像头拍照并上传到服务器
  15. PAT (Basic Level) Practice (中文)1027 打印沙漏 (20 分)(C++)
  16. android获取后一天日期,android获取本周本月本年的第一天和最后一天
  17. WPF 实现柱形统计图
  18. cjz格式文件打开方式_鹏业四川CJZ整体解决方案
  19. js promise的用法
  20. IPv6和IPv4共存技术之 ISATAP隧道技术

热门文章

  1. java 开发:md5_Java社区调查结果:74%的开发人员希望减少详细程度
  2. java timer开销_减少Java垃圾收集开销的5条提示
  3. Java EE 8怎么了? (第2部分)
  4. Java:如何创建轻量级数据库微服务
  5. 为什么声明性编码使您成为更好的程序员
  6. 带有AngularJS资源的Spring Rest Controller
  7. Apache Payara:让我们加密
  8. neo4j数据浏览器_Neo4j:在Neo4j浏览器的帮助下探索新数据集
  9. 如何使用JPA和Hibernate映射JSON集合
  10. macosx jdk_MacOSX环境上的多个Java JDK