Mybatis框架

MyBatis 是一个持久层框架,实现了对JDBC操作的封装,主要用于简化JDBC操作中的一些相对繁琐的步骤,例如参数的映射,结果集的映射等。

MyBatis配置

1.添加依赖

MYSQL驱动依赖
<dependency>
      <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
      <version>5.1.40</version>
  </dependency>    

Mybatis框架依赖
<dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.6</version>
  </dependency>

2.配置项目
在resource下创建mybatis-config.xml

  <!DOCTYPE configuration
 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- mybatis 核心配置 -->
<configuration>
  <!-- 配置初始化环境(连接) -->
  <environments default="development">
<environment id="development">
  <transactionManager type="JDBC"/>
  <!-- 使用mybatis自带连接池 -->
  <dataSource type="POOLED">
    <property name="driver" value="com.mysql.jdbc.Driver"/>
    <property name="url"  value="jdbc:mysql:///jtsys"/>
    <property name="username" value="root"/>
    <property name="password" value="root"/>
  </dataSource>
</environment>

</environments>
</configuration>
3.测试程序

public class TestMybatis {
/**
 * 借助此对象创建SqlSession(通过此对象
 * 实现与数据库之间的会话)
 */
protected SqlSessionFactory factory;
/**
 * 此方会在@Test注解修饰的方法之前执行,
 * 通常用于做一些初始化操作(方法名自己定义)
 */
@Before
public void init()throws IOException{
    InputStream in=Resources.getResourceAsStream("mybatis-configs.xml");
    factory=new SqlSessionFactoryBuilder().build(in);
    //系统底层建造者模式构建工厂对象(此对象构建过程相对复杂)
    System.out.println(factory);
}
@Test
public void testSqlSessionConnection(){
    SqlSession session=factory.openSession();
    Connection conn=session.getConnection();
    System.out.println(conn);
}

}

4.测试结果

org.apache.ibatis.session.defaults.DefaultSqlSessionFactory@516be40f
com.mysql.jdbc.JDBC4Connection@7e0b85f9 

业务逻辑测试

在Resource下创建Mapper folder,并创建mybatis配置文件SysLogMapper.xml

<?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.company.SysLogMapper">
<cache/>
<delete id="deleteObject">
delete from sys_logs where id=#{id}
</delete>
<select id="findPageObject" resultType="Object">
    select id,createdTime from sys_logs 
    limit #{startIndex},#{pageSize}
</select>
</mapper>


爱飞的小w
2 声望1 粉丝