This theme is built with |

spring与mybatis的整合

  1. 项目结构

Dao

 userDaoImpI实现类   第三种方式

1
2
3
4
5
6
7
8
9
10
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接口

1
2
3
4
5
6
7
8
9
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

1
2
3
4
5
6
7
8
9
<?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实现类  第二种方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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

1
2
3
4
5
6
7
8
9
10
11
package com.whz.pojo;
import lombok.Data;
 
@Data
public class User {
    private String  account;
    private String password;
    private String name;
 
 
}

  

 

test

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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

1
2
3
4
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 第二种、第三种方式会用到。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?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文件

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?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>

  

本文作者:小魏同学呀

本文链接:https://www.cnblogs.com/weitongxue/p/15998633.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   小魏同学呀  阅读(27)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 Play AlanWalker
  2. 2 来迟 戴羽彤
来迟 - 戴羽彤
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

戴羽彤 - 来迟

作词:卡文

作曲:三珊

编曲:筱明

制作人:一寸光年团队

吉他:老田

录音师:庄柏鑫

录音棚:33studio

和声:赫拉Hera

混音:张鸣利、黄俊@iPauL

制作公司:一寸光年

OP:一寸光年

「未经著作权人许可 不得翻唱 翻录或使用」

『酷狗音乐人 • 星曜计划』

全方位推广,见证星力量!

就好像是场隔世经年的梦

醒来我早已失去你的影踪

而曾经的我总是懵懵懂懂

最后才明白何为情之所钟

我提起一腔孤勇向你飞驰

想说出我刻在心上的名字

可你已经向新的航道行驶

那条船不再有我的位置

我这一次终究还是来得太迟

错过了你 此后所有的故事

我酝酿好久却老得掉牙的诗

最后也没能拥有收信地址

我这一次终究还是来得太迟

不该出现 再插上一点说辞

这本就是我一厢情愿的固执

只是该如何忘记你的名字

宛如像一首绵延不绝的诗

把你带走只留下一道影子

如果你已经拥有新的开始

我会忘记这一百种可是

我这一次终究还是来得太迟

错过了你 此后所有的故事

我酝酿好久却老得掉牙的诗

最后也没能拥有收信地址

我这一次终究还是来得太迟

不该出现 再插上一点说辞

这本就是我一厢情愿的固执

只是该如何忘记你的名字

终究还是来得太迟

错过了你 此后所有的故事

我酝酿好久却老得掉牙的诗

最后也没能拥有收信地址

我这一次终究还是来得太迟

不该出现 再插上一点说辞

这本就是我一厢情愿的固执

只是该如何忘记你的名字