最近学了黑马程序员的课程,用Spring对之前项目的Mybatis进行整合,步骤如下
首先第一步在maven中导入坐标
org.springframework
spring-context
5.2.10.RELEASE
com.alibaba
druid
1.0.15
org.mybatis
mybatis
3.5.6
mysql
mysql-connector-java
5.1.47
org.springframework
spring-jdbc
5.2.10.RELEASE
org.mybatis
mybatis-spring
1.3.0
先写了一个小型的项目,结构如图,有DAO层和Service层,测试类test相当于将来webapp项目的Servlet。
使用spring纯注解开发模式,首先新建一个config包,里面新建三个java类,分别是SpringConfig(Spring核心配置),MybatisConfig(Mybatis配置)以及JdbcConfig(Jdbc配置)。
@Configuration //声明该类是核心配置类
@ComponentScan("com.itheima") //Spring注解扫描,可扫描到itheima包下面的Component配置类
@PropertySource("classpath:jdbc.properties") //引入properties文件
public class SpringConfig {
}
JdbcConfig配置类
@Component
public class JdbcConfig {
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username ;
@Value("${jdbc.password}")
private String password ;
@Bean
public DataSource dataSource(){
DruidDataSource ds = new DruidDataSource();
ds.setDriverClassName(driver);
ds.setUrl(url);
ds.setUsername(username);
ds.setPassword(password);
return ds;
}
}
注意在这里的类似于jdbc.driver等变量是在配置文件中定义完成的
@Component
public class MybatisConfig {
@Bean
public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){
SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();
ssfb.setTypeAliasesPackage("com.itheima.pojo");
ssfb.setDataSource(dataSource);
return ssfb;
}
@Bean
public MapperScannerConfigurer mapperScannerConfigurer(){
MapperScannerConfigurer msc = new MapperScannerConfigurer();
msc.setBasePackage("com.itheima.dao");
return msc;
}
}
此处代码在往后的项目中可直接复制,只需更改 ssfb.setTypeAliasesPackage和 msc.setBasePackage两个值即可。
之后我写了一个查询所有方法来验证能否正常在数据库中读取数据。
@Component
public interface UserDao {
@Select("select * from tb_user")
List findAll();
}
UserService接口代码
public interface UserService {
List findAll();
}
UserServiceImpl实现类代码
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
public List findAll(){
return userDao.findAll();
}
}
在这里使用注解@AutoWired自动装配UserDao对象。
测试类如下public class test {
public static void main(String[] args) {
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);
UserService userService = ctx.getBean(UserService.class);
List all = userService.findAll();
System.out.println(all);
}
}
可以正常读出数据库存储的数组。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)