1、外围配置文件

  • mybatis-config.xml
  • Mybatis的配置文件蕴含了会深深的影响Mybatis行为的设置和属性信息

    configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境配置)environment(环境变量)transactionManager(事务管理器)dataSource(数据源)databaseIdProvider(数据库厂商标识)mappers(映射器)

    1.1、新建maven我的项目

    编写工具类

    package com.jialidun.utils;//sqlSessionFactory--->sqlSessionpublic class MybatisUtils{private static SqlSessionFactory sqlSessionFactory;static{try{    //应用mybatis第一步:获取sqlSessionFactory对象    String resource = "mybatis-config.xml";    InputStream inputStream = Resources.getResourceAsStream(resource);    sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);    }catch(IOException e){        e.printStackTrace();    }}//既然有了 SqlSessionFactory,顾名思义,咱们能够从中取得 SqlSession 的实例。//SqlSession 提供了在数据库执行 SQL 命令所需的所有办法。public static SqlSession getSqlSession(){    return sqlSessionFactory.openSession();}}

    实体类

    package com.jialidun.pojo;@Datapublic class User{private int id;private String name;private String pwd;}

    接口

    package com.jialidun.dao;public interface UserDao{   //查问全副用户List<User> getUserList();//依据id查问用户User getUserById(int id);//insert 一个用户int addUser(User user);//批改用户int updateUser(User user);//删除用户int deleteUser(int id);}

    mapper.xml映射文件

    <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!--namespace=绑定一个对应的Dao/Mapper接口--><mapper namespace="com.jialidun.dao.UserDao"> <!--select查问语句--><select id="getUserList" resultType="com.jialidun.pojo.User">select * from mybatis.user</select><select id="getUserById" parameterType="int" resultType="user">select * from mybatis.user where id = #{id}</select><!--对象中的属性,能够间接取出来--><insert id="addUser" parameterType="com.jialidun.pojo.User"> insert into mybatis.user(id,name,pwd) values(#{id},#{name},#{pwd});</insert><update id="updateUser" parameterType="com.jialidun.pojo.User">   update mybatis.user set name=#{name},pwd=#{pwd} where id=#{id};</update><delete id="deleteUser" parameterType="int"> delete from mybatis.user where id=#{id};</delete></mapper>

    测试

    package com.jialidun.dao;public class UserDaoTest{@Testpublic void test(){        //第一步:取得SqlSession对象    SqlSession sqlSession = MybatisUtils.getSqlSession();        try{    UserDao userDao= sqlSession.getMapper(UserDao.class);    List<User> userList = userDao.getUserList();        //形式二:    //List<User> userList = sqlSession.selectList("com.jialidun.dao.UserDao.getUserList");    for(User user:userList){        System.out.println(user);    }    }catch(Exception e){        e.printStackTrace();    }finally{        //敞开SqlSession        sqlSession.close();    }    }@Testpublic void getUserById(){      SqlSession sqlSession = MybatisUtils.getSqlSession();      UserMapper mapper = sqlSession.getMapper(UserDao.class);     User user = mapper.getUserById(1);   System.out,println(user);   sqlSession.close();}@Testpublic void addUser(){ SqlSession sqlSession = MybatisUtils.getSqlSession();      UserMapper mapper = sqlSession.getMapper(UserDao.class);     int num = mapper.addUser(4,"沙和尚","444555");   if(num>0){     System.out.println("增加用户胜利!");      }      //提交事务   sqlSession.commit();   sqlSession.close();}@Testpublic void updateUser(){   SqlSession sqlSession = MybatisUtils.getSqlSession();      UserMapper mapper = sqlSession.getMapper(UserDao.class);     mapper.updateUser(new User(4,"悟净","666666"));   //提交事务   sqlSession.commit();   sqlSession.close();}@Testpublic void deleteUser(){   SqlSession sqlSession = MybatisUtils.getSqlSession();      UserMapper mapper = sqlSession.getMapper(UserDao.class);     mapper.deleteUser(4);    //提交事务  sqlSession.commit();     sqlSession.close();}}

2、环境配置(encironments)

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><!--configuration外围配置文件--><configuration>        <!--引入内部配置文件-->    <properties resource="db.properties">        <property name="username" value="root"/>        <property name="password" value="1111"/>    </properties>    <!--能够给实体类起别名-->    <typeAliases>        <package name="com.jialidun.pojo"/>    </typeAliases><environments default="development">  <environment id="development">    <transactionManager type="JDBC"/>    <dataSource type="POOLED">      <property name="driver" value="${driver}"/>      <property name="url" value="${url}"/>      <property name="username" value="${username}"/>      <property name="password" value="${password}"/>    </dataSource>  </environment></environments><mappers>  <mapper resource="com/jialidun/dao/UserMapper/xml"/></mappers></configuration>

Mybatis能够配置成适应多种环境
不过要记住:只管能够配置多个环境,但每个 SqlSessionFactory 实例只能抉择一种环境。
学会应用配置多套运行环境!
Mybatis默认的事务管理器就是JDBC,连接池:POOLED

3、属性(properties)

咱们能够通过properties属性来实现援用配置文件
这些属性能够在内部进行配置,并能够进行动静替换。你既能够在典型的 Java 属性文件中配置这些属性,也能够在 properties 元素的子元素中设置。【db.properties】

driver=com.mysql.cj.jdbc.Driverurl=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC%2B+8username=rootpassword=root

在外围配置中引入

<!--引入内部配置文件-->    <properties resource="db.properties">        <property name="username" value="root"/>        <property name="password" value="1111"/>    </properties>
  • 能够间接引入内部文件
  • 能够在其中减少一些属性配置
  • 如果两个文件有同一个字段,优先应用内部配置文件的!

4、typeAliases(类型别名)

  • 类型别名可为 Java 类型设置一个缩写名字
  • 意在升高冗余的全限定类名书写
<!--能够给实体类起别名-->    <typeAliases>        <tyoeAlias type="com.jialidun.pojo.User" alias="User"/>    </typeAliases>

也能够指定一个包名,MyBatis 会在包名上面搜寻须要的 Java Bean,比方:
死奥秘实体类的包,它的默认别名就为这个类的类名,首字母小写!

<!--能够给实体类起别名-->    <typeAliases>        <package name="com.jialidun.pojo"/>    </typeAliases>

在实体类比拟少的时候,应用第一种形式
如果实体类非常多,倡议应用第二种
第一种能够自定义别名,然而第二种不能够自定义,如果非要改,须要在实体类上增加@Alias("xxx")注解

@Alias("user")public class User{  private int id;  private String name;  private String pwd;}

5、settings(设置)

这是 MyBatis 中极为重要的调整设置,它们会扭转 MyBatis 的运行时行为。

6、其余配置

  • typeHandlers(类型处理器)
  • objectFactory(对象工厂)
  • plugins(插件)
    mybatis-generator-core
    mybatis-plus
    通用mapper

    7、映射器(mappers)

    MapperRegistry:注册绑定咱们的Mapper文件
    形式一:【举荐应用】

    <mappers><mapper resource="com/jialidun/dao/UserMapper/xml"/></mappers>

    形式二:

    <mappers><mapper class="com.jialidun.dao.UserMapper"/></mappers>

    形式三:应用扫描包进行注入绑定

    <mappers><package name="com.jialidun.dao"/></mappers>

    留神点:

  • 接口和他的Mapper配置文件必须同名
  • 接口和他的Mapper配置文件必须在对立包下

将数据库配置文件内部引入
实体类别名
保障UserMapper接口和UserMapper.xml改为统一!并且在同一个包下!