我们在写一个独立的小项目的时候往往不需要引入mvc模块,仅仅需要操作数据库即可
所以就整合一下spring和mybatis,方便进行对数据库的操作
注意:源码地址:源码点我

spring-core,spring-context,spring-beans
org.springframework
spring-core,spring-context,spring-beans
5.2.19.RELEASE
compile
org.springframework
spring-context
5.2.19.RELEASE
compile
org.springframework
spring-beans
5.2.19.RELEASE
compile
org.springframework
spring-jdbc
5.2.19.RELEASE
compile
org.mybatis
mybatis
3.5.6
org.mybatis
mybatis-spring
2.0.6
mysql
mysql-connector-java
8.0.11
database.driver=com.mysql.cj.jdbc.Driver
database.url=jdbc:mysql://localhost/dblog?characterEncoding=utf8&characterSetResults=utf8&autoReconnect=true&failOverReadOnly=false
database.username=root
database.password=root
mybatis.aliasesPackage=com.it1997.domain
mybatis.mapperLocations=classpath:mapper/*Mapper.xml
@Configuration
@ComponentScan("com.it1997") // 开启Spring注解组件扫描
@MapperScan("com.it1997.mapper") // 扫描mapper接口地址
public class SpringConfig {
}
这个配置类指定了spring扫描的包路径和mapper接口路径
这个配置类实现的功能是
读取properties配置文件
构造数据源
配置动态创建数据库连接的对象
@Configuration // 该注解声明该类是一个配置类,不能省略
@PropertySource({"classpath:db.properties","classpath:mybatis.properties"})
public class JdbcConfig {
// 驱动名称
@Value("${database.driver}")
private String driverClassName;
// 数据库连接地址
@Value("${database.url}")
private String url;
// 数据库用户名
@Value("${database.username}")
private String username;
// 数据库密码
@Value("${database.password}")
private String password;
@Value("${mybatis.aliasesPackage}")
public String aliasesPackage;
@Value("${mybatis.mapperLocations}")
private String mapperLocations;
// 配置数据源
@Bean("dataSource")
public DataSource createDataSource() {
// 创建Druid连接池对象
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(driverClassName);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
dataSource.setDefaultAutoCommit(true); // 自动提交事务,默认true
return dataSource;
}
// 配置创建数据库连接的对象
@Bean
public SqlSessionFactoryBean getSqlSessionFactoryBean(DataSource dataSource) throws IOException {
SqlSessionFactoryBean sqlSessionFactoryBean=new SqlSessionFactoryBean();
// 设置连接池
sqlSessionFactoryBean.setDataSource(dataSource);
// 实体类起别名
sqlSessionFactoryBean.setTypeAliasesPackage(aliasesPackage);
// 配置mapper.xml配置文件路径
sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapperLocations));
return sqlSessionFactoryBean;
}
}
public static void main( String[] args ) {
System.out.println( "Hello World!" );
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfig.class);
UserMapper userMapper = applicationContext.getBean(UserMapper.class);
List list = userMapper.selectUserId();
System.out.println(list.toString());
}