MyBatis详解

5 篇文章 0 订阅
4 篇文章 0 订阅

Mybatis简介

  1. MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架
  2. MyBatis 避免了几乎所有的 JDBC 代码手动设置参数以及获取结果集
  3. MyBatis可以使用简单的XML注解用于配置和原始映射,将接口和Java的POJO(Plain Old JavaObjects,普通的Java对象)映射成数据库中的记录
  4. 其是一个半自动ORM(Object Relation Mapping对象关系映射)框架Hibernant是全自动的

搭建自己的MyBatis

  1. 创建一个Java Web项目
    在这里插入图片描述

  2. 导入依赖

    导入jdbc,mybatis包,Junit包

	<dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.3</version>
    </dependency>
        <dependency>
      <groupId>com.oracle</groupId>
      <artifactId>ojdbc6</artifactId>
      <version>11.2.0.1.0</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  1. Java 代码块
    在项目的main目录下创建Java代码包,创建一个pojo包,再创建一个实体类,写入与数据库字段相对应的属性,且属性名应当与数据库查询出的字段名一致
package pojo;

public class User {
   private String username;
   private String password;
   private String telephone;
   private String nickname;
   private String accountid;

    public User(String username, String password, String telephone, String nickname, String accountid) {
        this.username = username;
        this.password = password;
        this.telephone = telephone;
        this.nickname = nickname;
        this.accountid = accountid;
    }

    public String getAccountid() {
        return accountid;
    }

    public void setAccountid(String accountid) {
        this.accountid = accountid;
    }

    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 getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public User() {
    }

    @Override
    public String toString() {
        return "User{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", telephone='" + telephone + '\'' +
                ", nickname='" + nickname + '\'' +
                ", accountid='" + accountid + '\'' +
                '}';
    }
}

创建在Java代码包下创建Dao目录
创建一个接口UserDao
接口内写入对应方法 运行时会进行反射

package Dao;

import pojo.User;

import java.util.List;

public interface UserDao {
    //查询全部
    List<User> findAll();
}

  1. MyBatis 代码块
    在main目录下创建resourcecs文件夹
    在当前目录下创建db.propertise文件
    内部写入自己的数据库驱动与链接地址,还有数据库对应的用户与密码
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@//localhost:1521/XXX
username=XXX
password=XXX
在文件夹内创建**mybatis-config.xml 文件**
	对mybatis进行配置
<?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 文件 动态插入数据库连接所需数据-->
    <properties resource="db.properties"/>
    <!--配置mybatis环境-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="${dirver}" />
                <property value="${url}" name="url" />
                <property value="${username}" name="username" />
                <property value="${password}" name="password" />
            </dataSource>
        </environment>
    </environments>
    <!-- 引入SQL映射文件,Mapper映射文件 	-->
    <mappers>
        <mapper resource="mapper.xml" />
    </mappers>
</configuration>

接下来写sql映射文件
在resources目录下创建mapper.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">
<!--namespace与Dao目录下的接口相对应-->
<mapper namespace="Dao.UserDao">
    <select id="findAll" resultType="pojo.User">
    	<!--sql 写入sql查询语句-->
        SELECT username,password,telephone,nickname,accountid FROM bloglogin
    </select>
</mapper>

6.在main目录下创建test文件夹 将其标记为 test resources 即可在当前包内创建测试类

	SqlSession session = null;
	@Before
	//封装代码块,用于创建session会话
    public void test0(){
        String path = "mybatis-config.xml";
        Reader reader = null;
        try {
            reader = Resources.getResourceAsReader(path);
            System.out.println(reader);
        } catch (IOException e) {
            e.printStackTrace();
        }
        SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);
        //创建session实例
        session = sqlMapper.openSession();
    }
    @Test
    public void test(){
        //查询  利用接口进行反射
       	UserDao user = session.getMapper(UserDao.class);
       	//调用接口内方法
        List<User> all = user.findAll();
        System.out.println(all.size());
        //关闭会话
        session.close();
    }

测试运行 即可查询出结果

MyBatis配置文件简介

  1. MyBatis 的配置文件会直接影响MyBatis的运行行为,同时内部还提供了属性信息的设置
  2. 文件的结构为

configuration 配置

settings 设置
typeAliases 类型命名
typeHandler 类型处理器
objectFactory 对象工厂
plugins 插件
environments 环境

   environment 环境变量
  		transactionManager  事务管理器
  		DataSource 数据源

databaseProvider 数据库厂商标识
mappers 映射器

properties属性

  1. 可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来配置
  2. 然而properties的作用并不单单是这样,你可以创建一个资源文件,名为jdbc.properties的文件,将四个连接字符串的数据在资源文件中**通过键值 对(key=value)**的方式放置,不要任何符号,一条占一行
    代码示例:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis_1129
jdbc.username=root
jdbc.password=1234
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值