2021-04-14

本文详细介绍了MyBatis框架的搭建步骤,包括导入必要的jar包、配置mybatis-config.xml文件、创建映射文件及接口,以及如何通过SqlSession获取Mapper接口的动态代理实现类进行数据库操作。此外,还提到了XML配置文件的提示功能和标签顺序的重要性。
摘要由CSDN通过智能技术生成

一、开发环境的准备

总览:

复制代码
mybatis搭建过程:
1、导入jar
2、创建mybatis的核心(全局)配置文件mybatis-config.xml,并配置
3、创建映射文件XxxMapper.xml,并配置
4、创建mapper接口,实现两个绑定:
(1)接口全限定名要和映射文件的namespace保持一致
(2)接口中方法名和SQL语句的id保持一致
5、获取mybatis操作数据库的会话对象SqlSession,通过getMapper()获取接口的动态代理实现类
6、测试

详细过程:
在这里插入图片描述

0、STS选择Java视图,新建Java Project.

1、 导入MyBatis框架的jar包、Mysql驱动包、log4j的jar包
    myBatis-3.4.1.jar
    mysql-connector-java-5.1.37-bin.jar
    log4j.jar

2、创建mybatis的核心(全局)配置文件mybatis-config.xml,并配置(如何连接数据库,直接由手册中复制粘贴)
复制代码

<?xml version="1.0" encoding="UTF-8" ?>      1)对于properties和一些不常用的设置:
<!-- 
    <properties>:设置或引入资源文件
    resource:在类路径下访问资源文件
    url:在网络路径或磁盘路径下访问资源文件
 -->
<properties resource="jdbc.properties"></properties>

<!-- 将带下划线的变量转化为驼峰形式 user_Name -> userName -->
<settings>
    <setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

<typeAliases>
    <!-- 
        为类型设置类型别名
        type:Java 类型,若只设置type,默认的别名就是类型,且不区分大小写
     -->
    <!-- <typeAlias type="com.atguigu.bean.User" alias="u"/> -->
    <package name="com.atguigu.bean"/>
</typeAliases>

2)Mybatis的xml配置文件中标签的顺序不能出错

Content Model : (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?,
objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?)
  3)xml的提示功能:

-1)、联网
    -2)、配置:preference->xml->xmlCatalog–>add
    (1)PUBLIC ID:-//mybatis.org//DTD Config 3.0//EN
    (2)URI:http://mybatis.org/dtd/mybatis-3-config.dtd
  3、创建映射文件XxxMapper.xml,并配置(如何操作数据库,写的是SQL语句,处理实体对象Xxx和表关系)
  4、创建mapper接口,实现两个绑定:
    (1)接口全限定名要和映射文件的namespace保持一致
     (2)接口中方法名和SQL语句的id保持一致
  例如:接口UserMapper,和映射文件UserMapper.xml(实现调用接口中的方法就执行相应的SQL语句,并得到返回值)
package com.atguigu.mapper;

import com.atguigu.bean.User;

public interface UserMapper {

User getUserByUid(String uid);

}

<?xml version="1.0" encoding="UTF-8" ?>
<!-- 
    <select>:定义查询语句
    id:设置SQL语句的唯一标示
    resultType:结果类型,即实体类的全限定名
 -->
<select id="getUserByUid" resultType="com.atguigu.bean.User">
    select uid,user_name,password,age,sex from user where uid = ${value}
</select>
   5、获取mybatis操作数据库的会话对象SqlSession,通过getMapper()获取接口的动态代理实现类

package com.atguigu.mapper;

import static org.junit.Assert.*;

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;
import org.junit.Test;

import com.atguigu.bean.User;

public class TestMybatis {

@Test
public void test() throws IOException {
    
    InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
    SqlSessionFactory sqlSessionFactory = 
            new SqlSessionFactoryBuilder().build(is);
    SqlSession sqlSession = sqlSessionFactory.openSession();
    //getMapper():会通过动态代理动态生成UserMapper的代理实现类
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    System.out.println(mapper.getClass().getName());
    User user = mapper.getUserByUid("1");
    System.out.println(user);
    //user_name ---> userName
}

}在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值