日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Mybatis一对一结果映射

發布時間:2023/12/3 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mybatis一对一结果映射 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄結構

創建數據庫相應的表

一個賬戶對應一個用戶
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一对一结果映射的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。