12

【笔记】Spring整合MyBatis

 2 years ago
source link: https://feiju12138.github.io/2022/10/08/Spring%E6%95%B4%E5%90%88MyBatis/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【笔记】Spring整合MyBatis

2022-10-08 Java后端学习指北

1

Spring整合MyBatis学习笔记

pom.xml

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>

<!-- 数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>

定义JDBC配置类

  • 利用数据库连接池druid创建类型为DataSource的bean对象

src/main/java/com/conf/JDBCConfig.java

package com.conf;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.context.annotation.Bean;

import javax.sql.DataSource;

public class JDBCConfig {

@Bean
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("");
dataSource.setUsername("");
dataSource.setPassword("");
return dataSource;
}
}

定义MyBatis配置类

sqlSessionFactoryBean.setTypeAliasesPackage("");:利用包扫描自动配置返回值类型别名。想当于<typeAliases><package name="com.pojo"/></typeAliases>配置
mapperScannerConfigurer.setBasePackage("");:配置Mapper扫描的包名

package com.conf;

import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;

import javax.sql.DataSource;

public class MybatisConfig {

/**
* 定义MyBatis配置的bean
*/
@Bean
public SqlSessionFactoryBean sqlSessionFactoryBean (DataSource dataSource) {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setTypeAliasesPackage("com.pojo");
sqlSessionFactoryBean.setDataSource(dataSource);
return sqlSessionFactoryBean;
}

/**
* 定义Mapper扫描的bean
*/
@Bean
public MapperScannerConfigurer mapperScannerConfigurer(DataSource dataSource) {
MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
mapperScannerConfigurer.setBasePackage("com.dao");
return mapperScannerConfigurer;
}
}

定义全局配置类

  • 引入JDBC配置
  • 引入MyBatis配置

src/main/java/com/conf/SpringConfig.java

@ComponentScan(""):包扫描
@Import():引入配置类

package com.conf;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

@Configuration
@ComponentScan("com")
@Import({JDBCConfig.class, MybatisConfig.class})
public class SpringConfig {
}

src/main/java/com/pojo/User.java

package com.pojo;

public class User {

private Integer id;
private String name;

public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}

src/main/java/com/dao/UserDao.java

package com.dao;

import com.pojo.User;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface UserDao {

@Select("SELECT * FROM user")
List<User> selectAll();
}

src/main/java/com/Application.java

package com;

import com.conf.SpringConfig;
import com.dao.UserDao;
import com.pojo.User;
import com.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import java.util.List;

public class Application {

public static void main(String[] args) {
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfig.class);
UserDao userDao = applicationContext.getBean(UserDao.class);
List<User> users = userDao.selectAll();
System.out.println(users);
}
}

哔哩哔哩——黑马程序员

</div


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK