Mybatis开启的方法

157 阅读1分钟

Mybatis依赖

没有什么依赖就是对原生的Jdbc的封装

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>${mysql.version}</version>
    </dependency>
    
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>${mybatis.version}</version>
    </dependency>

Mybatis原始版本

最开始是使用配置文件来实现的,需要配置主配置文件和指定的对应的mapper.xml,比如UserMapper.xml,对应的xml在主配置文件里面指定,这里面指定的mapper文件夹不是Java的代码里面的包,而是配置文件下面的路径。

主配置文件如下

<?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="mysql">
        <environment id="mysql">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/hello/mapper/*.xml"/>
    </mappers>
</configuration>

子配置文件的头

<?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.hello.dao.UserDao">
    <select id="queryAll" resultMap="com.hello.domain.User">
    select * from user;
    </select>
</mapper>

使用的方法很简单

  • 1读取配置文件,里面的文件就是放在resources下的总配置文件,名字一致就行
InputStream in= Resources.getResourceAsStream("SqlMapConfig.xml");
  • 2创建SqlSessionFactory工厂,使用自带的实现类。
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
  • 3工厂生产SqlSession对象
SqlSession sqlSession = factory.openSession();
  • 4对象创建代理对象
UserDao userDao = sqlSession.getMapper(UserDao.class);
  • 5使用代理对象执行方法,查询不需要提交,修改的需要提交
List<User> users = userDao.queryAll();
sqlSession.commit();
  • 6释放资源
sqlSession.close();
        in.close();

Mybatis注解版本

随着配置文件越来越多,对于简单的操作,注解的方式越来收到欢迎。

使用注解,主配置文件使用class属性,扫描包

<mappers>
        <mapper class="com.hello.dao.*"/>
    </mappers>

然后在Dao的方法上使用注解,来写sql语句

@Select 查询
@Insert 新增
...

注解不使用xml的mapper文件,不管配没配置都会扫描xml文件,如果找到对应的就会出现冲突,所以删除

Mybatis高级

配置数据库配置文件不够灵活,支持外部导入配置文件

比如也是resources下的jdbcConfig.properties配置文件,内容是

...
jdbc.password=123456
...

那么在mybatis主配置文件里面可以直接引入

<properties resource="jdbcConfig.properties" />

然后配置文件里面的,就可以这么写了

<property name="password" value="${jdbc.password}"/>

或者直接使用引入外部的位置,但是不推荐

<properties url="file:///D:/workspace/Java/ssm_hello/src/main/resources/spring-config.xml"></properties>