This theme is built with awe|

mybatis深入理解

准备工作:

导入依赖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>Mybatis-02</artifactId>
<dependencies>
<!-- mybatis必备-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<!--免写get set 使用注解@data即可,注意需要安装好Lombok插件才有效-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
<!--Junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!--数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!--处理DataSource需要用到-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>

<!--整合mybatis-spring-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.2</version>
</dependency>
<!-- properties的识别需要用到context-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
</dependencies>


<!-- 配置资源过滤,以防止除了resource的xml识别不了,以及每次编译resource下的配置文件更新-->
<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>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>

</project>

  

  

 

Spring 一起使用 MyBatis,需要在 Spring 应用上下文中定义至少两样东西:一个 SqlSessionFactory 和至少一个数据映射器类

 

 

可使用 SqlSessionFactoryBean来创建 SqlSessionFactory

《spring配置文件中》

配置文件类型

1
2
3
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
</bean>

注解类型:

复制代码
@Configuration
public class MyBatisConfig {
  @Bean
  public SqlSessionFactory sqlSessionFactory() throws Exception {
    SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
    factoryBean.setDataSource(dataSource());
    return factoryBean.getObject();
  }
}
复制代码

所需的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/web?characterEncoding=UTF-8&amp;useSSL=false&amp;serverTimezone=GMT"/>
<property name="username" value="root"/>
<property name="password" value="1234"/>
</bean>

  



映射器类
必须是一个接口,而不是具体的实现类

假设接口名《mapper的接口》:

配置文件类型:
1
2
public interface UserMapper {
  @Select("SELECT * FROM website") <br>  List<User> selectUser();<br><br> }

 注解类型: 

复制代码
<?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">
   select * from website
  </select>
</mapper>
复制代码

 Spring 一起使用 MyBatis使用MapperFactoryBean去整合(2)映射器(1)SqlSessionFactory 

《spring配置文件中》加入:

配置文件类型:
1
2
3
4
<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
  <property name="mapperInterface" value="org.mybatis.spring.sample.mapper.UserMapper" />
  <property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>

注解类型:

1
2
3
4
5
6
7
8
@Configuration
public class MyBatisConfig {
  @Bean
  public UserMapper userMapper() throws Exception {
    SqlSessionTemplate sqlSessionTemplate = new SqlSessionTemplate(sqlSessionFactory());
    return sqlSessionTemplate.getMapper(UserMapper.class);
  }
}

 pojo实体类:

 

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;
 
 
}

  

 测试
1
2
3
4
5
6
7
8
9
10
11
public class test {
    @Test
    public void test01() {
        ApplicationContext app= new ClassPathXmlApplicationContext("spring-dao.xml");
        UserMapper userMapper = (UserMapper) app.getBean("userMapper");
        List<User> users = userMapper.selectUser();
        for (User user: users){
            System.out.println(user.getName());
        }
    }
}

  



本文作者:小魏同学呀

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

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

posted @   小魏同学呀  阅读(39)  评论(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:一寸光年

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

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

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

就好像是场隔世经年的梦

醒来我早已失去你的影踪

而曾经的我总是懵懵懂懂

最后才明白何为情之所钟

我提起一腔孤勇向你飞驰

想说出我刻在心上的名字

可你已经向新的航道行驶

那条船不再有我的位置

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

错过了你 此后所有的故事

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

最后也没能拥有收信地址

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

不该出现 再插上一点说辞

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

只是该如何忘记你的名字

宛如像一首绵延不绝的诗

把你带走只留下一道影子

如果你已经拥有新的开始

我会忘记这一百种可是

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

错过了你 此后所有的故事

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

最后也没能拥有收信地址

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

不该出现 再插上一点说辞

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

只是该如何忘记你的名字

终究还是来得太迟

错过了你 此后所有的故事

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

最后也没能拥有收信地址

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

不该出现 再插上一点说辞

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

只是该如何忘记你的名字