Mybatis的学习.

  • 一.配置mybatis.cfg.xml(在此之前需要首先配置好log4j的配置文件)
    : 1.在外部编写文件
    (1).driver需要用com.mysql.cj.jdbc.Driver
    (2).url配置上需要注意一下,有data类型,不让通过,需要在url后面添加serverTimezone=UTC或者GMT%2B8
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8&serverTimezone=
jdbc.username=...
jdbc.password=...

: 2.

<?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 resource="mysql.properties"></properties>

  <!-- 配置mybatis运行环境 -->
  <environments default="cybatis">
      <environment id="cybatis">
          <!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
          <transactionManager type="JDBC" />

          <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
          <!-- POOLED 表示支持JDBC数据源连接池 -->
          <!-- UNPOOLED 表示不支持数据源连接池 -->
          <!-- JNDI 表示支持外部数据源连接池 -->
          <dataSource type="POOLED">
              <property name="driver" value="${jdbc.driver}" />
              <property name="url" value="${jdbc.url}" />
              <property name="username" value="${jdbc.username}" />
              <property name="password" value="${jdbc.password}" />
          </dataSource>
      </environment>
  </environments>
  <mappers>
      <mapper resource="Usermapper.xml"/>
  </mappers>
</configuration>

: 3.映射文件Usermapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="test">
   <select id="findUserById" parameterType="int" resultType="DAO.User">
       SELECT * from t_user where id=#{id};
   </select>
</mapper>

: 4.测试类

public class MybatisFirst {
  private String resource="mybatis.cfg.xml";

  @Test
  public void findUserByIdTest() throws IOException {
      InputStream inputStream = Resources.getResourceAsStream(resource);
//       创建会话工厂
      SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//        使用会话工厂新建sqlsession,然后使用他来进行数据库的操作.
      SqlSession sqlSession = sqlSessionFactory.openSession();
      User user= sqlSession.selectOne("test.findUserById",2);
      System.out.println(user);
      sqlSession.close();
  }
}

: 5.总结
大概流程就是

1.配置log4j
2.配置mybatis的总配置文件,使连接上数据库
3.配置映射文件,在里面填写调用mysql的语句.
4.新建一个类,使用Mybatis连接到mysql>
  	InputStream inputStream = Resources.getResourceAsStream("配置文件地址");
方法连接到mybatis,然后创建会话工厂>
  	SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
使用会话工厂创建会话>
  	  SqlSession sqlSession = sqlSessionFactory.openSession();
使用会话操作数据库,调用的是映射文件Usermapper里的(命名空间.id的sql语句,并传入参数.)
  	  User user= sqlSession.selectOne("test.findUserById",2);
关闭会话>
      sqlSession.close();

以上结束之后,记录一下使用Mybatis自动生成daoimpl进行开发的开发规范,基本上按照这个来就行了.

  1. Mapper.xml中的namespace等于mapper的接口地址,即等于原始dao接口的地址.
  2. mapper接口中的方法名,输入类型,和输出类型都要和mapper.xml文件中的语句id,输入类型和输出类型一致.
  3. 仍然需要在mybaits里面的mappers里面配置好这个mapper,因为上述两步只是建立起了mapper.xml和dao接口之间的关系,还是需要注册到sqlmapconfig里面…

接下来就是Mybatis和SpringMVC进行整合的时候,使用mapper代理进行开发,也就是不写daoimpl进行开发的过程.
如果使用原始的DaoImpl进行开发,那么就需要DaoImpl类继承sqlsessionfactorysupport类然后加载sqlsessionfactory
若使用mapper代理方法:

  1. 规范和上述一致.
  2. MapperFactoryBean注册到springmvc.
  3. 使用MapperFactoryBean进行注册,不建议使用这种方法,因为每写一个mapper文件就需要配一个这个. 单个文件配置
  4. 建立一个文件夹专门用来放置mapper.xml文件和mapper.java文件,然后使用mapperscannerconfigurer来进行扫描配置,这里需要注意的是如果这样配置需要把mapper文件和java文件放置在同一目录下面,在此基础上遵循上面所写的那两条规范才能正确使用.
    多个一起配置
  5. 很好奇有没有不放置在同一文件夹下的方法呢?百度上有,不过我没做测试,照做之下应该是可以的.百度 方法
  6. 上面配置完成之后,就可以直接在service层里面使用@autowired进行装配了.装配的时候写接口类就可以了.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值