spring与mybatis的整合

  1. 项目结构

Dao

 userDaoImpI实现类   第三种方式

package com.whz.dao;
import com.whz.pojo.User;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import java.util.List;

public class UserDaoImpl extends SqlSessionDaoSupport implements UserMapper  {
    public List<User> selectUser() {
        return getSqlSession().getMapper(UserMapper.class).selectUser();
    }
}

  

UserMapper接口

package com.whz.dao;
import com.whz.pojo.User;
import org.apache.ibatis.annotations.Select;
import java.util.List;

public interface UserMapper {

    List<User> selectUser();
}

  

UserMapper.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.whz.dao.UserMapper">
    <select id="selectUser" resultType="com.whz.pojo.User">
      select * from website
     </select>
</mapper>

  

UserMapperImp实现类  第二种方式

package com.whz.dao;
import com.whz.pojo.User;
import org.mybatis.spring.SqlSessionTemplate;
import java.util.List;

public class UserMapperImp implements UserMapper {
    private SqlSessionTemplate sqlsession;
    public void setSqlsession(SqlSessionTemplate sqlsession) {
        this.sqlsession = sqlsession;
    }

    public List<User> selectUser() {
        //使用mapper是由配置文件一路传值过来
        UserMapper mapper = sqlsession.getMapper(UserMapper.class);
        return mapper.selectUser();
    }
}

  

pojo

User.java

package com.whz.pojo;
import lombok.Data;

@Data
public class User {
    private String  account;
    private String password;
    private String name;


}

  

 

test

package com.whz.test;
import com.whz.dao.UserMapper;
import com.whz.pojo.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.List;

public class test {
    public static void main(String[] args) {
        ApplicationContext app= new ClassPathXmlApplicationContext("spring-dao.xml");
        UserMapper userMapper = (UserMapper) app.getBean("userDao");
        List<User> users = userMapper.selectUser();
        for (User user: users){
            System.out.println(user.getName());
        }
    }
}

  

resources

db.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/web?characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT
jdbc.username=root
jdbc.password=1234

  

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>
<!--  类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写  -->
    <typeAliases>
        <package name="com.whz.pojo"/>
    </typeAliases>

    <mappers>
<!--       这些配置会告诉 MyBatis 去哪里找映射文件 resource绑定路径不能写点-->
        <mapper resource="com/whz/dao/UserMapper.xml"/>
    </mappers>
</configuration>

  

spring-dao.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       https://www.springframework.org/schema/context/spring-context.xsd">
<!--使用context来引用properties配置文件--> <context:property-placeholder location="classpath:db.properties"/> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <!-- 配置连接池属性 --> <property name="driverClassName" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean> <!-- 3.配置SqlSessionFactory对象 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 注入数据库连接池 --> <property name="dataSource" ref="dataSource"/> <!-- 绑定mybatis配置文件,如果使用第一种方式就不用绑定mybatis配置文件,因为没有你还绑定啥?--> <property name="configLocation" value="classpath:mybatis-config.xml"/> </bean> <!-- 第一种MapperFactoryBean方式--> <!-- <bean id="per" class="org.mybatis.spring.mapper.MapperFactoryBean">--> <!-- <property name="mapperInterface" value="com.whz.dao.UserMapper" />--> <!-- <property name="sqlSessionFactory" ref="sqlSessionFactory" />--> <!-- </bean>--> <!-- 第二种SqlSessionTemplate方式需要有接口实现类,且需要有mybatis-config.xml的配置文件映射接口--> <!-- <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">--> <!-- <constructor-arg index="0" ref="sqlSessionFactory" />--> <!-- </bean>--> <!-- <bean id="mapper" class="com.whz.dao.UserMapperImp">--> <!-- <property name="sqlsession" ref="sqlSession"></property>--> <!-- </bean>--> <!-- 第三种 需要实现类但是不需要注入sqlsession,直接调用getsqlsession--> <bean id="userDao" class="com.whz.dao.UserDaoImpl"> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean> </beans>

  

web

pom文件

 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>Mybits</artifactId>
        <groupId>com.whz</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>Mybatis03</artifactId>
    <dependencies>
<!--        junit-->

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
<!--        mybatis-->

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
<!--        mysql-connector-java-->

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
<!--        spring相关-->

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.1.10.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.1.10.RELEASE</version>
        </dependency>
<!--        aspectJ AOP 织入器-->

        <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.9.4</version>
        </dependency>
<!--        mybatis-spring整合包 【重点】-->

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.2</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>

            <resource>
                <directory>
                    src/main/resources
                </directory>
            </resource>
        </resources>
    </build>
</project>

  

posted @ 2022-03-12 21:59  小魏同学呀  阅读(41)  评论(0)    收藏  举报