myBatis的dao层的映射和springMvc整合mybatis

springMvc整合mybatis

1.1 pom注入依赖
<dependencies>
        <dependency>
            <groupId>org.mybatisgroupId>
            <artifactId>mybatisartifactId>
            <version>3.4.5version>
        dependency>
        
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>5.1.6version>
        dependency>
        
        <dependency>
            <groupId>log4jgroupId>
            <artifactId>log4jartifactId>
            <version>1.2.12version>
        dependency>
      
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.12version>
        dependency>
    dependencies>
1.2 配置mybatis_config.xml文件

  这个文件要配置在resources目录下。
myBatis的dao层的映射和springMvc整合mybatis_第1张图片
配置内容


DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        
        <setting name="lazyLoadingEnabled" value="true" />
        

        <setting name="aggressiveLazyLoading" value="false" />

        
        <setting name="cacheEnabled" value="true" />
    settings>

    <typeAliases>
        
        
        <package name="net.seehope.mybatis.pojo" />
    typeAliases>
    
    <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>
configuration>

mybatis 的dao层

1.1 dao层

  dao层就是使用Sql语句,或者就是拼接sql语句操作数据库,但在spring框架中我们可以通过dao层映射的操作去省去传统Jdbc的一些步骤,像dao层的实例使用。

1.2 实现

mybatis对于dao层的实现,采用了一种代理开发模式,我们可以通过自己编写的Mapper接口 (以前的dao接口),然后mybatis可以通过接口去创建相应动态代理对象,在代理对象上实现相应的方法。

   首先我们要创建对应的接口,例如这里我创建一个userMapper接口

public interface UserMapper {
//这个接口中有一个添加用户的方法,也可以写多个。
    int addUser();
}

   然后我们要去配置相应的配置文件在resources目录下。基本样式如下


DOCTYPE mapper
        PUBLIC " -//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">


<mapper namespace="com.example.ktp.mapper.UserMapper">
     
     <insert id="addUser">
         insert into ktp_user(name,password) values ("ss","ssssss");
     insert>
     
     <select id="selectByIdUser" resultType="UserMapper">
        
    select>
mapper>

   这样我们就写好了一个基础的dao,但如何去检验呢,就需要junit

1.3 测试

   测试文件我们要写在test目录下,我们通过加载配置文件,和去创建一个虚拟的测试实类.
例如:

import com.example.ktp.mapper.UserMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;

public class test_user_mapper {
  @Test
 public void testUser() throws IOException {
       InputStream is= Resources.getResourceAsStream("mybatis_config.xml");
       //通过SqlSessionFactoryBuilder去构建SqlSessionFactory
      SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
      //再通过SqlSessionFactory和配置文件去构建SqlSession
      SqlSessionFactory sqlSessionFactory=builder.build(is);
       //Sqlsession文件充当java程序和数据库的桥梁
      SqlSession sqlSession=sqlSessionFactory.openSession(true);
      //Sqlsession文件通过接口的class文件去创建类
      UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
      //使用这个方法,返回为1,则成功了
      int t=userMapper.addUser();
      System.out.println("Result: "+t);
  }
}

总而言之,mybatis很大程度上的减少了我们的代码量

你可能感兴趣的:(笔记,1024程序员节)