• 初识MyBatis及第一个MyBatis程序(基于Maven创建)


    MyBatis简介

    1、什么是MyBatis

    • MyBatis是一款优秀的持久层矿建
    • 它支持定制化SQL、存储过程以及高级映射。
    • MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。
    • MyBatis可以使用简单的XML或者注解来配置和映射原生类型、接口和Java的POJO为数据库中的记录。
      获取MyBatis
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.6</version>
    </dependency>
    

    第一个MyBatis

    1. 搭建环境

      1. 创建数据库

      2. 新建项目(普通Maven即可)

      3. 导入相关依赖

        <!--Mysql驱动-->
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>8.0.18</version>
                </dependency>
                <!--Junit-->
                <dependency>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                    <version>4.12</version>
                </dependency>
                <!--MyBatis-->
                <dependency>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis</artifactId>
                    <version>3.4.6</version>
                </dependency>
        
      4. 创建MyBatis核心配置文件(MyBatis-config.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>
            <environments default="development">
                <environment id="development">
                    <transactionManager type="JDBC"/>
                    <dataSource type="POOLED">
                        <property name="driver" value="com.mysql.cj.jdbc"/>
                        <property name="url"
                                  value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&amp;useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
                        <property name="username" value="root"/>
                        <property name="password" value="Root1234"/>
                    </dataSource>
                </environment>
            </environments>
            <!--  每一个Mapper.xml都需要在MyBatis的核心配置文件中注册  -->
            <mappers>
                <mapper resource="Mapper文件路径"/>
         </mappers>
        </configuration>
        
      5. 编写MyBatis工具类用于获取SqlSession

        public class MyBatisUtil {
        	private static SqlSessionFactory sqlSessionFactory;
        
        	static{
        		//		从 XML 文件中构建 SqlSessionFactory 的实例非
        		String resource = "MyBatis-config.xml";
        		InputStream inputStream = null;
        		try{
        			inputStream = Resources.getResourceAsStream(resource);
        		}catch(IOException e){
        			e.printStackTrace();
        		}
        		sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        	}
        	//既然有了 SqlSessionFactory,我们可以从中获得 SqlSession 的实例。SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。
        	public static SqlSession getSqlSession(){
        		return sqlSessionFactory.openSession();
        	}
        
        }
        
    2. 编写代码

      1. 创建实体类

      2. 创建接口

        public interface empMapper {
        	List<Employee> getEmpList();
        }
        
      3. 创建Mapper配置文件,定义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和这个接口绑定-->
        <mapper namespace="com.maple.dao.emp.empMapper">
            <!--id对应接口中的方法名字,将这句sql和方法绑定resultType是返回的类型,需要指明这个类型的包路径-->
            <select id="getEmpList" resultType="com.maple.pojo.Employee">
                select * from employee
            </select>
        </mapper>
        
      4. 在MyBatis核心配置文件(MyBatis-config.xml)中注册Mapper.xml

        <mappers>
                <mapper resource="MyBatis/Mapper/EmpMapper.xml"/>
            </mappers>
        
      5. 测试

        public class empMapperTest {
        	@Test
        	public void test(){
        		//1. 获取SqlSession对象
        		SqlSession sqlSession = MyBatisUtil.getSqlSession();
        
        		//2. 执行sql
        			//方式1获取Mapper
        		EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);
        		List<Employee> empList = empMapper.getEmpList();
        			//方式2
        //		List<Employee> empList = sqlSession.selectList("com.maple.dao.emp.EmpMapper.getEmpList");
        		for(Employee employee : empList){
        			System.out.println(employee);
        		}
        
        
        		//3. 关闭SqlSession
        		sqlSession.close();
        	}
        }
        

    最后附上目录结构

  • 相关阅读:
    微信mac版的bug 直接显示了消息原始数据
    提一下InfoQ
    成长
    SaaS产品成功学
    .io域名在申请SSL证书时被坑
    一件小事
    Git做代码增量发布的重要用法
    今天
    为什么都不写博
    惑不惑
  • 原文地址:https://www.cnblogs.com/junlinsky/p/12801153.html
Copyright © 2020-2023  润新知