需要的文件:
1.config文件夹中的springConfig,jdbcConfig,mybatisConfig
2.resources文件夹中的jdbc.properties配置文件
jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/db1?userSSL=false jdbc.username=root jdbc.password=123456
3.domain/pojo文件夹中的pojo类
public class Account implements Serializable { private Integer id; private String name; private Double money; 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;} public Double getMoney() {return money;} public void setMoney(Double money) {this.money = money;} @Override public String toString() { return "Account{" + "id=" + id + ", name='" + name + '\'' + ", money=" + money + '}'; } }
实现步骤:
步骤1(使用注解获取所需):
在springConfig配置类中使用@PropertySource读取jdbc.propertie配置文件
@PropertySource("classpath:jdbc.properties")
使用@Import引入jdbcConfig和MyBatisConfig的字节码文件
@Import({JdbcConfig.class,MyBatisConfig.class})
步骤一效果:
@Configuration
@ComponentScan("com.tg")
@PropertySource("classpath:jdbc.properties")
@Import({JdbcConfig.class,MyBatisConfig.class})
public class SpringConfig {
}
步骤2(JdbcConfig配置):
public class JdbcConfig {
//使用Value从jdbc.properties配置文件(外部)注入进这里的对象中
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String userName;
@Value("${jdbc.password}")
private String password;
//创建dataSource方法
//返回一个Bean
@Bean
public DataSource dataSource(){
DruidDataSource ds = new DruidDataSource();
//引入上面的成员变量到以下语句内
ds.setDriverClassName(driver);
ds.setUrl(url);
ds.setUsername(userName);
ds.setPassword(password);
return ds;
}
}
步骤3(MyBatisConfig配置):
public class MyBatisConfig {
//重新配置sqlSessionFactory
@Bean
public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){
SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();
//对应实体类所在的包(它会自动取对应包中不包括包名的简单类名作为包括包名的别名)
ssfb.setTypeAliasesPackage("com.tg.domain");
//指定数据源
ssfb.setDataSource(dataSource);
return ssfb;
}
@Bean
public MapperScannerConfigurer mapperScannerConfigurer(){
MapperScannerConfigurer msc = new MapperScannerConfigurer();
//扫描文件夹将里面的接口实例化进IOC容器
msc.setBasePackage("com.tg.dao");
return msc;
}
}
测试:
public class App {
public static void main(String[] args) {
//创建IOC容器
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);
//得到bean对象
AccountService accountService = ctx.getBean(AccountService.class);
//查询数据库id为1的对象
Account ac = accountService.findById(1);
//打印ac看看效果
System.out.println(ac);
}
}