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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

mybatis实现多对多

發布時間:2024/2/28 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybatis实现多对多 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

pom.xml

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.henu</groupId><artifactId>mybatis03_manyTomany</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.5</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.12</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.10</version></dependency></dependencies></project>

bean

Role

User

Dao

RoleDao

UserDao

Resources

SqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><properties resource="jdbcConfig.properties"></properties><!--使用typeAliases配置別名,它只能配置bean中類的別名--><typeAliases><package name="com.henu.bean"></package></typeAliases><!-- 配置環境 --><environments default="mysql"><!--配置mysql的環境--><environment id="mysql"><!--配置事務的類型--><transactionManager type="JDBC"></transactionManager><!--配置數據源(連接池)--><dataSource type="POOLED"><!--配置連接數數據庫的基本信息--><property name="driver" value="${driver}"/><property name="url" value="${url}"/><property name="username" value="${username}"/><property name="password" value="${password}"/></dataSource></environment></environments><!--配置映射文件的位置--><mappers><package name="com.henu.dao"></package></mappers></configuration>

log4j.properties

# Global logging configuration log4j.rootLogger=error, stdout # MyBatis logging configuration... log4j.logger.cn.wolfcode.mybatis=TRACE # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

jdbcConfig.properties

driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8 username=root password=123456

RoleDao.xml

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.henu.dao.RoleDao"><!--定義role表的mapproperty是對應bean中的屬性column是對應數據庫中的列--><resultMap id="roleMap" type="role"><id property="roleId" column="id"></id><result property="role_Name" column="role_name"></result><result property="role_Desc" column="role_desc"></result><collection property="users" ofType="user"><id property="id" column="rid"></id><result property="username" column="username"></result><result property="birthday" column="birthday"></result><result property="sex" column="sex"></result><result property="address" column="address"></result></collection></resultMap><!--配置查詢所有--><select id="findAll" resultMap="roleMap">select u.*,r.id as rid,r.role_name,r.role_desc from role rleft outer join user_role ur on r.id=ur.ridleft outer join user u on u.id=ur.uid</select></mapper>

UserDao.xml

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.henu.dao.UserDao"><resultMap id="userMap" type="user"><id property="id" column="id"></id><result property="username" column="username"></result><result property="birthday" column="birthday"></result><result property="sex" column="sex"></result><result property="address" column="address"></result><collection property="roles" ofType="role"><id property="roleId" column="id"></id><result property="role_Name" column="role_name"></result><result property="role_Desc" column="role_desc"></result></collection></resultMap><!--配置查詢所有--><!--id為方法名稱--><select id="findAll" resultMap="userMap">select u.*,r.id as rid,r.role_name,r.role_desc from user uleft outer join user_role ur on u.id = ur.uidleft outer join role r on r.id = ur.rid</select></mapper>

test

RoleTest

package com.henu.test;import com.henu.bean.Role; import com.henu.bean.User; import com.henu.dao.RoleDao; import com.henu.dao.UserDao; 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.After; import org.junit.Before; import org.junit.Test;import java.io.IOException; import java.io.InputStream; import java.util.List;/*** @author George* @description**/ public class RoleTest {private InputStream in;private SqlSession sqlSession;private RoleDao roleDao;@Before //用于測試方法執行之前執行public void init() throws IOException {in = Resources.getResourceAsStream("SqlMapConfig.xml");//2.創建SqlSessionFactory工廠SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);//3.使用工廠生成SqlSession對象sqlSession = factory.openSession();//4.使用SqlSession創建Dao接口的代理對象roleDao = sqlSession.getMapper(RoleDao.class);}@After //用于測試方法執行之后執行public void destory() throws IOException {sqlSession.close();in.close();}/*** 查詢全部*/@Testpublic void findAllTest(){List<Role> roles = roleDao.findAll();for (Role role : roles) {System.out.println("--------------每個角色的信息--------------");System.out.println(role);System.out.println(role.getUsers());}}}

UserTest

package com.henu.test;import com.henu.bean.User; import com.henu.dao.UserDao; 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.After; import org.junit.Before; import org.junit.Test;import java.io.IOException; import java.io.InputStream; import java.util.List;/*** @author George* @description**/ public class UserTest {private InputStream in;private SqlSession sqlSession;private UserDao userDao;@Before //用于測試方法執行之前執行public void init() throws IOException {in = Resources.getResourceAsStream("SqlMapConfig.xml");//2.創建SqlSessionFactory工廠SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);//3.使用工廠生成SqlSession對象sqlSession = factory.openSession();//4.使用SqlSession創建Dao接口的代理對象userDao = sqlSession.getMapper(UserDao.class);}@After //用于測試方法執行之后執行public void destory() throws IOException {sqlSession.close();in.close();}/*** 查詢全部*/@Testpublic void findAllTest(){List<User> users = userDao.findAll();for (User user : users) {System.out.println("-------每個用戶的信息---------");System.out.println(user);System.out.println(user.getRoles());}}}

?

總結

以上是生活随笔為你收集整理的mybatis实现多对多的全部內容,希望文章能夠幫你解決所遇到的問題。

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