栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MyBaties学习:XML配置

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MyBaties学习:XML配置

一、XML方式

        MyBatis 的真正强大之处在于它的映射语句,这也是它的魔力所在。由于它的映射语句异常强大,映射器的XML 文件就显得相对简单。如果将其与具有相同功能的JDBC 代码进行对比, 立刻就会发现,使用这种方法节省了将近95%的代码量。 MyBatis 就是针对SQL构建的,并且比普通的方法做的更好。

        MyBatis 3.0 的一个最大变化,就是支持使用接口来调用方法。MyBatis 使用Java 的动态代理可以直接通过接口来调用相应的方法,不需要提供接口的实现类,更不需要在实现类中使用 SqlSession以通过命名空间间接调用。

二、xml示例: 2.1 创建数据库

创建如下的数据库,并插入数据:

CREATE TABLE `sys_user` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户 ID',
  `user_name` varchar(50) DEFAULT NULL COMMENT '用户名',
  `user_password` varchar(50) DEFAULT NULL COMMENT '密码',
  `user_email` varchar(50) DEFAULT NULL COMMENT '邮箱',
  `user_info` text COMMENT '简介',
  `head_img` blob COMMENT '头像',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1002 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户农';

 2.2 创建实体类

创建对应sys_user数据表的实体类:

public class SysUser {
    private Long id;
    
    private String userName;
    
    private String userPassword;
    
    private String userEmail;
    
    private String userInfo;
    
    private byte[] headImg;
    
    private Date createTime;

    public Long getId() {
        return id;
    }

    public String getUserName() {
        return userName;
    }

    public String getUserPassword() {
        return userPassword;
    }

    public String getUserEmail() {
        return userEmail;
    }

    public String getUserInfo() {
        return userInfo;
    }

    public byte[] getHeadImg() {
        return headImg;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public void setUserPassword(String userPassword) {
        this.userPassword = userPassword;
    }

    public void setUserEmail(String userEmail) {
        this.userEmail = userEmail;
    }

    public void setUserInfo(String userInfo) {
        this.userInfo = userInfo;
    }

    public void setHeadImg(byte[] headImg) {
        this.headImg = headImg;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}

        对于 SysUser 实体类,在后面使用这些对象的时候,可以通过resultMap 对数据库的列和类的宇段配置映射关系。

2.3 创建UserMapper.xml映射文件



	
		
		
		
		
		
		
		
	

	
	
		select
			r.id,
			r.role_name roleName,
			r.enabled,
			r.create_by createBy,
			r.create_time createTime
		from sys_user u
				 inner join sys_user_role ur on u.id = ur.user_id
				 inner join sys_role r on ur.role_id = r.id
		where u.id = #{userId} and r.enabled = #{enabled}
	

接口方法中,参数要添加注解:

    
    List selectRolesByUserIdAndRoleEnabled(@Param("userId")Long userId, @Param("enabled")Integer enabled);

        给参数配置@Param注解后, MyBatis 就会自动将参数封装成Map 类型,@Param 注解值
会作为Map 中的key,因此在SQL 部分就可以通过配置的注解值来使用参数。

四、结束

        本文介绍了MyBatis使用XML的配置方式,并基于其实现了select、insert、update和delete操作。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/732289.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号