整合Mybatis

整合Mybatis

步骤

  1. 导入相关jar包

    1. junit
    2. mybatis
    3. mysql数据库
    4. spring相关的
    5. aop织入
    6. mybatis-spring【新的】

    包依赖

<dependencies>
<!--        mybatis的依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
<!--            spring的依赖-->
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.20</version>
        </dependency>
        <dependency>
<!--            数据库的依赖-->
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.46</version>
        </dependency>
<!--        spring操作数据库需要一个spring-jdbc-->
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.3.20</version>
        </dependency>
        <dependency>
<!--            aop织入的依赖-->
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.8.13</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
        <dependency>
<!--            spring操作mybatis的yilai-->
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.7</version>
        </dependency>

    </dependencies>

mybatis回顾

dao层:

UserMapper接口

public interface UserMapper {
    public List<User> query();
}

User Mapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="dao.UserMapper">
    <select id="query" resultType="user">
        select * from mybatis.user
    </select>
</mapper>

pojo层

User类

@Data
public class User {
    private int id;
    private String name;
    private String pwd;
}

资源:resources

mybatis-config.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8\
  &allowPublicKeyRetrieval=true
username=root
password=123456

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="mybatis-config.properties"/>
    <typeAliases>
        <package name="pojo"/>
    </typeAliases>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper class="dao.UserMapper"/>
    </mappers>
</configuration>

测试类:

@Test
    public void test1(){
        String resource = "mybatis-config.xml";
        InputStream inputStream = null;
        try {
            inputStream = Resources.getResourceAsStream(resource);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List<User> query = mapper.query();
        for (User user : query) {
            System.out.println(user);
        }
        sqlSession.close();
    }
  1. 编写测试文件
  2. 测试

Mybatis整合一:

Spring-dao:配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--dataSource 使用Spring的数据源替换Mybatis的配置  c3p0 dbcp
这里使用Spring提供的JDBC  org.springframework.jdbc.datasource
-->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </bean>

<!--sqlSessionFactory-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
<!--绑定Mybatis配置文件-->
        <property name="configLocation" value="mybatis-config.xml"/>
        <property name="mapperLocations" value="classpath:dao/*.xml"/>
    </bean>
<!--
 SqlSessionTemplate:就是我们使用的sqlSession
 -->
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<!--        只能使用构造器注入sqlSessionFaction,因为没有set方法-->
        <constructor-arg index="0" ref="sqlSessionFactory"/>
    </bean>
<bean class="dao.UserMapperImpl" id="userMapper">
    <property name="sqlSession" ref="sqlSession"/>
</bean>

</beans>

mybatis-conig文件:处理mybatis的

<?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>
<!--   别名管理-->
    <typeAliases>
        <package name="pojo"/>
    </typeAliases>
<!--设置管理-->

</configuration>

pojo类:

@Data
public class User {
    private int id;
    private String name;
    private String pwd;
}

dao包

UserMapper接口:

public interface UserMapper {
    public List<User> query();
}

UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="dao.UserMapper">
    <select id="query" resultType="user">
        select * from mybatis.user
    </select>
</mapper>

UserMapperImpl实现类:

public class UserMapperImpl implements UserMapper{
    //我们的所有操作,都使川sqlSession来执行,在原来,现在都使用SqLSessionTemplate;
private SqlSessionTemplate sqlSession;

    public void setSqlSession(SqlSessionTemplate sqlSession) {
        this.sqlSession = sqlSession;
    }

    @Override
    public List<User> query() {
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
      return mapper.query();

    }
}

测试:

public void test1(){
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-dao.xml");
        UserMapper userMapper = context.getBean("userMapper", UserMapper.class);
        for (User user : userMapper.query()) {
            System.out.println(user);
        }

    }

Mybatis整合二:

UserMapperTwo:

public class UserMapperImplTwo extends SqlSessionDaoSupport implements UserMapper{
    @Override
    public List<User> query() {
        UserMapper mapper = getSqlSession().getMapper(UserMapper.class);
        return  mapper.query();
    }
}

配置 Spring中:

<bean class="dao.UserMapperImplTwo" id="implTwo">
        <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
    </bean>

替代了原来的:

<!--
 SqlSessionTemplate:就是我们使用的sqlSession
 -->
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<!--        只能使用构造器注入sqlSessionFaction,因为没有set方法-->
        <constructor-arg index="0" ref="sqlSessionFactory"/>
    </bean>
<bean class="dao.UserMapperImpl" id="userMapper">
    <property name="sqlSession" ref="sqlSession"/>
</bean>
posted @   明眸清澈  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示