Mybatis学习-day01

190 阅读2分钟

1 MyBatis简介

  • MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架
  • MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集
  • MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录
  • Mybatis 是一个 半自动的ORM(Object Relation Mapping)框架

2 MyBatis的使用

2.1 开发环境的准备

导入MyBatis框架的jar包、MySQL驱动包、log4j的jar包

  myBatis-3.4.1.jar
  mysql-connector-java-5.1.37-bin.jar
  log4j.jar

创建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>
 <properties resource="jdbc.properties"></properties>
 <environments default="development">
  <environment id="development">
   <transactionManager type="JDBC" />
   <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>

其中的jdbc.properties为jdbc的资源文件,就不具体描述

创建映射文件xxxMapper.xml,其中的xxx对应创建的每个bean

<?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">

<!--
  (1)接口全限定名要和映射文件中的namespace保持一致
  (2)接口中的方法名和SQL语句的id保持一致
-->
<mapper namespace="com.prgers.mapper.UserMapper">
 <select id="getUserByUid" resultType="com.prgers.bean.User">
  select * from user where uid = #{id}
 </select>
</mapper>

导入log4j的配置文件, 命名为log4j.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration
 xmlns:log4j="http://jakarta.apache.org/log4j/">
 <appender name="STDOUT"
  class="org.apache.log4j.ConsoleAppender">
  <param name="Encoding" value="UTF-8" />
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern"
    value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n" />
  </layout>
 </appender>
 <logger name="java.sql">
  <level value="debug" />
 </logger>
 <logger name="org.apache.ibatis">
  <level value="info" />
 </logger>
 <root>
  <level value="debug" />
  <appender-ref ref="STDOUT" />
 </root>
</log4j:configuration>

3 MyBatis的初步使用

例子: 通过id查找user的所有信息

InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
SqlSession sqlSession = sqlSessionFactory.openSession();
//getMapper():会通过动态代理动态生成UserMapper的代理实现类
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUserByUid("1");
System.out.println(user);