mybatis-xml配置

2023-05-16

(一)先配置datasource.properties配置文件:(此步可省略)


jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/wode?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=admin  

 

(二)配置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="datasource.properties"></properties> <typeAliases> <package name="com.wode.pojo"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> </environments> <mappers> <package name="com/wode/mapper"/> </mappers> </configuration>

(三)创建自己的工具类:


package com.wodo.util;
import java.io.IOException;
import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class DbUtil { private static SqlSessionFactory sessionFactory; static{ InputStream in= null; try { in=Resources.getResourceAsStream("SqlMapConfig.xml"); sessionFactory=new SqlSessionFactoryBuilder().build(in); } catch (IOException e) { // TODO Auto-generated catch block  e.printStackTrace(); }finally { if(in != null){ try { in.close(); } catch (IOException e) { // TODO Auto-generated catch block  e.printStackTrace(); } } } } public static SqlSession getSession(){ return sessionFactory.openSession(); } }  

(四)导入相关jar包

(五)mapper中xml的配置

5.1:一对一


<?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.wode.mapper.UserInfoMapper"> <resultMap type="UserInfo" id="UserInfo"> <id property="infoId" javaType="int" column="info_id" /> <result javaType="java.lang.String" property="nickName" column="nickname" /> </resultMap> <resultMap type="UserInfo" id="UserInfoWithUser"> <id property="infoId" javaType="int" column="info_id" /> <result javaType="java.lang.String" property="nickName" column="nickname" /> <association property="user" column="user_id" javaType="int" select="com.wode.mapper.UserMapper.findUserById"></association> <!-- 这里我们通过mapper识别符找到userMapper中的findUserById,其实是执行了两次 --> </resultMap> <!-- 单表查询info数据 --> <select id="findUserInfoById" resultMap="UserInfo" parameterType="int"> select * from userinfo where info_id=#{id} </select> <!-- 多表1对1关系查询数据 --> <select id="findInfoAndUserById" resultMap="UserInfoWithUser" parameterType="int"> select * from userinfo where info_id=#{id} </select> </mapper>  

<?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.wode.mapper.UserMapper"> <resultMap id="userMap" type="User" > <id property="userId" column="user_id" javaType="int"></id> <result property="userName" column="user_name" javaType="java.lang.String"/> <result property="userPwd" column="user_pwd" javaType="java.lang.String"/> </resultMap> <resultMap id="userAndInfo" type="User" > <id property="userId" column="user_id" javaType="int"></id> <result property="userName" column="user_name" javaType="java.lang.String"/> <result property="userPwd" column="user_pwd" javaType="java.lang.String"/> <association property="info" column="user_id" javaType="UserInfo" select="com.wode.mapper.UserInfoMapper.findUserInfoById"></association> </resultMap> <insert id="addUser" parameterType="User" useGeneratedKeys="true"> insert into users(user_name,user_pwd) values(#{user.userName},#{user.userPwd}) </insert> <select id="findUserById" resultMap="userMap" parameterType="int"> select * from users where user_id=#{id} </select> <select id="findUserAndInfoById" resultMap="userAndInfo" parameterType="int"> select * from users where user_id=#{id} </select> </mapper>  

 5.2 一对多:


<?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.wode.mapper.UserInfoMapper"> <resultMap type="UserInfo" id="UserInfo"> <id property="infoId" javaType="int" column="info_id" /> <result javaType="java.lang.String" property="nickName" column="nickname" /> </resultMap> <resultMap type="UserInfo" id="UserInfoAndUser"> <id property="infoId" javaType="int" column="info_id" /> <result javaType="java.lang.String" property="nickName" column="nickname" /> <association property="user" column="user_id" javaType="int" select="com.wode.mapper.UserMapper.findUserById"></association> </resultMap> <!-- 单表查询info数据 --> <select id="findUserInfoById" resultMap="UserInfo" parameterType="int"> select * from userinfo where info_id=#{id} <!-- 这里会有问题出现吗?注意查询条件? --> </select> <select id="findUserInfoById2" resultMap="UserInfo" parameterType="int"> select * from userinfo where user_id=#{id} </select> <!-- 多对1查询 --> <select id="findUserInfoAndUser" resultMap="UserInfoAndUser" parameterType="int"> select * from userinfo where info_id=#{id} </select> </mapper>  

<?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.wode.mapper.UserMapper"> <resultMap id="userMap" type="User" > <id property="userId" column="user_id" javaType="int"></id> <result property="userName" column="user_name" javaType="java.lang.String"/> <result property="userPwd" column="user_pwd" javaType="java.lang.String"/> </resultMap> <!-- 连表查询 --> <resultMap id="userandInfo" type="User" > <id property="userId" column="user_id" javaType="int"></id> <result property="userName" column="user_name" javaType="java.lang.String"/> <result property="userPwd" column="user_pwd" javaType="java.lang.String"/> <collection property="info" column="user_id" select="com.wode.mapper.UserInfoMapper.findUserInfoById2"></collection> </resultMap> <insert id="addUser" parameterType="User" useGeneratedKeys="true"> insert into users(user_name,user_pwd) values(#{user.userName},#{user.userPwd}) </insert> <select id="findUserById" resultMap="userMap" parameterType="int"> select * from users where user_id=#{id} </select> <!-- 一对多查询 --> <select id="findUserAndInfoById" resultMap="userandInfo" parameterType="int"> select * from users where user_id=#{id} </select> </mapper>  

5.3:多对多


<?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.wode.mapper.CourseMapper"> <resultMap type="Course" id="UserAndCourse"> <id property="id" column="course_id" javaType="int"></id> <result property="code" column="course_code" javaType="java.lang.String" /> <result property="name" column="course_name" javaType="java.lang.String" /> <collection property="users" column="course_id" select="findByUser"></collection> </resultMap> <resultMap type="Course" id="courseMap"> <id property="id" column="course_id" javaType="int"></id> <result property="code" column="course_code" javaType="java.lang.String" /> <result property="name" column="course_name" javaType="java.lang.String" /> </resultMap> <select id="findCourse" resultMap="courseMap" parameterType="int"> select * from course where course_id=#{id} </select> <select id="findUserAndCourse" resultMap="UserAndCourse" parameterType="int"> select * from course where course_id=#{id} </select> <select id="findByUser" parameterType="int" resultMap="com.wode.mapper.UserMapper.userMap"> select * from users where user_id in (select user_id from users_course where course_id=#{id}) </select> </mapper>  

<?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.wode.mapper.UserMapper"> <resultMap id="userMap" type="User" > <id property="userId" column="user_id" javaType="int"></id> <result property="userName" column="user_name" javaType="java.lang.String"/> <result property="userPwd" column="user_pwd" javaType="java.lang.String"/> <result property="userType" column="user_type" javaType="int"/> </resultMap> <resultMap type="User" id="userAndCourse"> <id property="userId" column="user_id" javaType="int"></id> <result property="userName" column="user_name" javaType="java.lang.String"/> <result property="userPwd" column="user_pwd" javaType="java.lang.String"/> <result property="userType" column="user_type" javaType="int"/> <collection property="courses" column="user_id" select="findByCourse"></collection> </resultMap> <insert id="addUser" parameterType="User" keyProperty="user.userId" useGeneratedKeys="true"> insert into users values(null,#{user.userName},#{user.userPwd},#{user.userType}) </insert> <!-- 得到刚才插入数据库自增长的主键值 --> <delete id="delById" parameterType="Integer"> delete from users where user_id=#{id} </delete> <update id="updateUserById" parameterType="String"> <!-- id为1的数据的名字改为用户需要的 --> update users set user_name=#{name} where user_id=1 </update> <select id="getUserById" parameterType="Integer" resultMap="userMap" > select * from users where user_id=#{id} </select> <select id="getAllUser" resultMap="userMap" > select * from users </select> <!--many to many--> <select id="findUserAndCourse" parameterType="int" resultMap="userAndCourse"> select * from users where user_id=#{id} </select> <select id="findByCourse" parameterType="int" resultMap="com.wode.mapper.CourseMapper.courseMap"> select * from course where course_id in (select course_id from users_course where user_id=#{id}) </select> </mapper>  

5.4:动态sql


<?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.wode.mapper.ScoreMapper"> <sql id="score">id,name,age,className</sql> <resultMap type="Score" id="scoreMap"> <id column="id" javaType="int" property="id"/> <result column="name" property="name" javaType="java.lang.String"/> <result column="age" property="age" javaType="int"/> <result column="className" property="className" javaType="java.lang.String"/> <result column="java" property="java" javaType="int"/> <result column="web" property="web" javaType="int"/> <result column="mysql" property="mysql" javaType="int"/> </resultMap> <!-- 测试sql标签 的使用 --> <select id="findScoreById" parameterType="java.util.Map" resultMap="scoreMap"> select <include refid="score"/> from score where id=#{id} and java=#{java} </select> <!-- 根据if语句对数据结果做筛选 --> <select id="searchStudent" parameterType="java.util.Map" resultMap="scoreMap"> select * from score where 1=1 <if test="java!=null"> and java &gt;=#{java} </if> <if test="web!=null"> and web &gt;=#{web} </if> <if test="mysql!=null"> and mysql &gt;=#{mysql} </if> </select> <!-- choose 对某科目的及格学生做查询 --> <select id="searchStudent2" parameterType="java.lang.String" resultMap="scoreMap"> select * from score <choose> <when test="course=='java'"> where java &gt;=60 </when> <when test="course=='web'"> where web &gt;=60 </when> <otherwise> where mysql &gt;=60 </otherwise> </choose> </select> <!-- <where>条件使用 <select id="searchStudent" parameterType="java.util.Map" resultMap="scoreMap"> select * from score <where> <if test="java!=null"> and java &gt;=#{java} </if> <if test="web!=null"> and web &gt;=#{web} </if> <if test="mysql!=null"> and mysql &gt;=#{mysql} </if> </where> </select> --> <!-- trim <select id="searchStudent" parameterType="java.util.Map" resultMap="scoreMap"> select * from score <trim prefix="where" prefixOverrides="and|or"> <if test="java!=null"> and java &gt;=#{java} </if> <if test="web!=null"> and web &gt;=#{web} </if> <if test="mysql!=null"> and mysql &gt;=#{mysql} </if> </trim> </select> --> <!-- 测试set --> <update id="updateScore" parameterType="java.util.Map"> update score <set> <if test="java != null"> java = #{java}, </if  

转载于:https://www.cnblogs.com/shizhijie/p/10599827.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mybatis-xml配置 的相关文章

随机推荐

  • IDEA 设置 背景 图片 详细步骤(结尾附高清背景图片)

    先上效果图 xff0c 原图在结尾 第一步 xff0c 找到搜索界面 xff0c 在搜索界面搜索 Set Background Image 之后 xff0c 找到想设置的图片的存储路径 接下来设置不透明度Opacity xff0c 越向右
  • Ubuntu 18.04下创建新用户/目录、修改用户权限及删除用户的方法

    Ubuntu 18 04下创建新用户 目录 修改用户权限及删除用户的方法 以下介绍在Ubuntu 18 04系统下创建新用户 目录 修改用户权限及删除用户的正确方法 在Ubuntu系统上创建新用户使用 sudo useradd 用户名 命令
  • 栈和队列练习题

    1 20分 回文序列是指正读反读均相同的字符序列 xff0c 如 abba 和 abdba 均是回文 xff0c 但 good 不是回文 试写一个算法判定给定的字符串是否为回文序列 span class token keyword int
  • mysql数据库忘记密码了怎么办

    本人用的mysql8版本 看到网上很多教程 xff0c 什么修改配置文件my ini 在8版本根本没用 以下是8版本解决办法 亲测可用 1 用管理员身份打开命令行工具 xff08 强调 xff1a 管理员身份 xff09 2 停止mysql
  • Java字符串匹配算法

    定义 串 string 是由零个或多个字符组成的有限序列又名叫字符串 一般地 xff0c 由n个字符串构成的串记作 S 61 a0a1 an 1 n 0 其中a i xff08 1 i n xff09 n是个有限的数值串一般记为S是串的名称
  • win10 vmvare打开虚拟机蓝屏重启,禁用device/credential guard 解决方法

    目录 解决方法在此 win10系统安装的vmware15一打开虚拟机就蓝屏重启 家人们我改了大半天 xff0c 试了友友们各种方法 xff0c 终于发现 xff0c 全都不好使 xff01 11 xff01 xff01 xff01 xff0
  • 数据结构算法设计题

    线性表 1 已知长度为n的线性表采用顺序存储结构 写一个算法 xff0c 删除线性表中所有值为x的元素 方法一 用k记录顺序表L中等于x的元素个数 xff0c 边扫描L边统计k 并将不等于x的元素前移k个位置 xff0c 最后修改L的长度
  • Elasticsearch Java API的基本使用

    说明 在明确了ES的基本概念和使用方法后 xff0c 我们来学习如何使用ES的Java API 本文假设你已经对ES的基本概念已经有了一个比较全面的认识 客户端 你可以用Java客户端做很多事情 xff1a 执行标准的index get d
  • lut调色预设怎么安装,LUT预设导入FCPX/PR/AE/PS/LR/达芬奇等软件教程

    lut调色预设怎么安装 xff0c LUT预设导入FCPX PR AE PS LR 达芬奇等软件教程 lut调色预设是一套深受设计师喜爱的调色软件 xff0c 通过使用LUT可以迅速达到很好的胶片质感和色彩 xff0c 在此基础上稍作调整即
  • macbook pro如何外接显示器?macbook 外接显示器教程

    13寸MacBook Pro屏幕是不是有点小了 xff1f 不知道你有没有萌生外接显示器的方法 xff01 接下来就为大家展示一下macbook pro如何外接显示器 xff01 先说说外接显示器有什么好处 1 拓展了工作空间 13寸的Ma
  • 腾讯视频 for Mac缓存的视频在哪?找不到腾讯视频缓存文件怎么办

    腾讯视频 for Mac提供丰富多彩的节目 xff0c 有时候我们会想要将缓存下来观看过的视频给删除 xff0c 但是根本找不到腾讯视频缓存文件 xff0c 那么我们要怎样才知道它的缓存路径呢 和小编一起来看看腾讯视频 for Mac缓存的
  • Mac OS小技巧:MAC电脑如何设置一键切换输入法

    我们在电脑上进行输入时经常会切换中英文输入不同的文字 xff0c 在windows系统上输入法切换直接按快捷键shift 43 ctrl就可以实现 xff0c 但是Mac系统的输入法设置与Windows系统的输入法设置不同 xff0c 但是
  • 全网最快的M1 MacBook Air详细测评

    简要总结这款 M1 MacBook Air xff1a 1 M1性能表现超出预期的好 xff0c 速度快到堪称恐怖 2 与Intel Mac一样功能强大 xff0c 甚至更强大 3 M1发热大幅降低 xff0c 续航大幅提升 4 兼容性不是
  • Mac技巧|如何阻止 iCloud 同步某个文件夹?

    使用 iCloud 的过程中 xff0c 难免遇到有些文件夹你不希望同步 比如游戏制作 xff0c 视频剪辑等的工程文件 xff0c iCloud 的持续同步机制会使得这些文件夹中的部分文件持续处于被上传且不可用状态 今天小编就给大家带来了
  • parallels desktop M1版安装Windows10教程

    近期有些朋友购入了新的M1 mac xff0c 可发现无法安装windows 现在 xff0c Parallels发布了与M1 Mac兼容的Parallels 16的技术预览版本 xff0c 可以安装ARM版本的win10 接下来 xff0
  • macOS怎样备份?备份Mac文件的最佳方法

    备份macOS绝不是一个坏主意 xff0c 您的机器可能会损坏 xff0c 故障或变得更糟 无论出现什么问题 xff0c 备份都可以帮助您恢复正常工作 如何使用Time Machine和iCloud备份Mac 要使用Time Machine
  • Office 2019 for Mac激活失败,显示未找到许可证怎么办?

    无法激活office 2019 xff1f office 2019激活后提示找不到许可证 xff1f 今日小编找到一个解决办法 xff1a 原来是在启动程序中注册了office的授权系统监控程序 com microsoft office l
  • Mac 外接显示器色彩不正常解决方案

    使用 MacBook和MacMini使用外接第三方非 Apple 认证的显示器会有色彩问题 xff0c 可能是显示器颜色整体发灰 xff0c 也有可能绿色特别绿 这是因为Apple封闭的系统识别的显示器较少 xff0c 第三方厂商也未很好的
  • mybatis-xml配置

    xff08 一 xff09 先配置datasource properties配置文件 xff1a xff08 此步可省略 xff09 jdbc driver 61 com mysql jdbc Driver jdbc url 61 jdbc
  • ArchiCAD 24 Mac版3D建筑模型设计和分析软件新功能介绍

    ArchiCAD 24 Mac破解版全新上线 xff0c 有哪些新增功能 xff1f 小编给大家带来了这篇ArchiCAD 24 Mac版3D建筑模型设计和分析软件新功能介绍的文章 xff0c 希望可以帮到你 设计 创建集成模型 使用Arc