Jalena Blog

  • 首页
  • 程序开发
    • Java
    • Spring
    • SpringBoot
    • SpringMvc
    • Python
    • Odoo
    • C#
    • SQL
    • Web
    • Linux
  • 移动设备
    • Android
    • BlackBerry
    • Router
  • 杂七杂八
    • 我的废话
    • 音频
    • 视频
    • 常用软件
  • 关于
A bad workman always blames his tools.
  1. 首页
  2. Development
  3. Java
  4. 正文

MyBatis 使用详解

2017-04-10 150点热度 0人点赞 0条评论

什么是 MyBatis ?

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

如果使用 Maven 来构建项目,则需将下面的 dependency 代码置于 pom.xml 文件中:

配置Mybatis

<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis</artifactId>
	<version>3.4.2</version>
</dependency>

定义实体Bean

package com.pay.entity;

public class Manager {
    private Integer id;

    private String username;

    private String userpwd;

    private String email;

    public Manager(Integer id, String username, String userpwd, String email) {
        this.id = id;
        this.username = username;
        this.userpwd = userpwd;
        this.email = email;
    }

    public Manager() {
        super();
    }

    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 == null ? null : username.trim();
    }

    public String getUserpwd() {
        return userpwd;
    }

    public void setUserpwd(String userpwd) {
        this.userpwd = userpwd == null ? null : userpwd.trim();
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email == null ? null : email.trim();
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", username=").append(username);
        sb.append(", userpwd=").append(userpwd);
        sb.append(", email=").append(email);
        sb.append("]");
        return sb.toString();
    }
}
package com.pay.entity;

public class Manager {
    private Integer id;

    private String username;

    private String userpwd;

    private String email;

    public Manager(Integer id, String username, String userpwd, String email) {
        this.id = id;
        this.username = username;
        this.userpwd = userpwd;
        this.email = email;
    }

    public Manager() {
        super();
    }

    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 == null ? null : username.trim();
    }

    public String getUserpwd() {
        return userpwd;
    }

    public void setUserpwd(String userpwd) {
        this.userpwd = userpwd == null ? null : userpwd.trim();
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email == null ? null : email.trim();
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", username=").append(username);
        sb.append(", userpwd=").append(userpwd);
        sb.append(", email=").append(email);
        sb.append("]");
        return sb.toString();
    }
}

定义Dao接口

package com.pay.dao;

import com.pay.entity.Manager;

import java.util.List;

public interface IManagerDao {
    /**
     * 添加一个管理员
     * @param bean 管理实体类
     */
    public void add(Manager bean);

    /**
     * 查询管理用户
     * @param userName 用户名
     * @param userPwd 用户密码
     * @return 一个管理角色对象
     */
    public Manager findUser(String userName,String userPwd);

    /**
     * 更改管理员密码
     * @param userName 用户名
     * @param newPwd 用户新密码
     */
    public void updatePwd(String userName,String newPwd);

    /**
     * 查询所有管理员用户
     * @return 管理员集合
     */
    public List<Manager> findAll();
}

定义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.pay.dao.IManagerDao">

  <!-- 缓存配置 -->
  <cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true"/>

  <resultMap id="ManagerResultMap" type="com.pay.entity.Manager">
    <constructor>
      <idArg column="id" javaType="java.lang.Integer" jdbcType="INTEGER" />
      <arg column="userName" javaType="java.lang.String" jdbcType="VARCHAR" />
      <arg column="userPwd" javaType="java.lang.String" jdbcType="VARCHAR" />
      <arg column="email" javaType="java.lang.String" jdbcType="VARCHAR" />
    </constructor>
  </resultMap>
  <sql id="ManagerList">
    id, userName, userPwd, email
  </sql>

  <!-- 添加管理员 -->
  <insert id="add" parameterType="com.pay.entity.Manager">
    insert into manager (userName, userPwd,
      email)
    values (#{username,jdbcType=VARCHAR}, #{userpwd,jdbcType=VARCHAR},
      #{email,jdbcType=VARCHAR})
  </insert>

  <!-- 查询管理员 -->
  <select id="findUser" resultMap="ManagerResultMap">
    select <include refid="ManagerList"/> from manager where userName = #{userName} and userPwd = #{userPwd}
  </select>

  <!-- 更改管理员密码 -->
  <update id="updatePwd">
    UPDATE manager SET userPwd = #{userPwd} where userName = #{userName}
  </update>

</mapper>
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: java MyBatis
最后更新:2019-01-28

Jalena

A bad workman always blames his tools.

点赞
< 上一篇
下一篇 >

文章评论

取消回复

Jalena

A bad workman always blames his tools.

最新 热点 随机
最新 热点 随机
Centos 7 离线安装Nginx Centos nmcli 网络管理命令 Linux 密钥登录 服务器部署vSphere ESXI 软路由(ESXi)安装OpenWrt 使用 Docker 部署 wordpress Android Studio Gradle 代理设置 Frp 反向代理 Git 更新合并fork的项目代码 MySQL 常用命令
Centos 7 离线安装Nginx
博客认领 WebService 测试 Frp 反向代理 Eclipse 初始设置 Uncaught Error: Unknown field state in domain [JetBrains] 学生开发者免费申请专业版授权 WinCe 6.0 DataGrid 绑定List数据源 Windows安装Mysql Zip绿色版 WordPress 备份迁移记录 TMPGEnc 4.0 XPress Retail Ver:4.7.7.307
标签聚合
Centos java 其他 生活 odoo Edius 解码 wordpress
Links
  • Emin.ink
  • 猿人学网站
  • ZWWoOoOo
  • 时空镜像
  • Feng Blog
  • ninja911

COPYRIGHT © 2020 Jalena Blog. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS