ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Spring-xml(+注解)方式整合第三方的框架-mybatis
[打印本页]
作者:
千千梦丶琪
时间:
2024-4-22 20:41
标题:
Spring-xml(+注解)方式整合第三方的框架-mybatis
1)不需要自定义命名空间:MyBatis
Spring整合Mybatis的步骤如下:
// 原始配置
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.10</version>
</dependency>
// mybatis配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/dianping"/>
<property name="username" value="root"/>
<property name="password" value="123"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/springdemo/service/Mapper/userMapper.xml"/>
</mappers>
</configuration>
// mapper配置文件
<?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.springdemo.service.Mapper.userMapper">
<select id="getList" resultType="com.springdemo.service.pojo.userDto">
select * from tb_user
</select>
</mapper>
//测试
InputStream in = Resources.getResourceAsStream("MybatisConfigure.xml");
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory sqlSessionFactory = builder.build(in);
SqlSession sqlSession = sqlSessionFactory.openSession();
userMapper userMapper = sqlSession.getMapper(userMapper.class);
List<userDto> list = userMapper.getList();
for(userDto userDto:list){
System.out.println(userDto.toString());
}
// 输出
userDto{id=1, phone='13686869696', nick_name='小鱼同学', password='', icon='/imgs/blogs/blog1.jpg'}
userDto{id=2, phone='13838411438', nick_name='可可今天不吃肉', password='', icon='/imgs/icons/kkjtbcr.jpg'}
userDto{id=4, phone='13456789011', nick_name='user_slxaxy2au9f3tanffaxr', password='', icon=''}
userDto{id=5, phone='13456789001', nick_name='可爱多', password='', icon='/imgs/icons/user5-icon.png'}
复制代码
导入Mybatis整个Spring的相关坐标;
编写Mapper和Mapper.xml
配置SqlSessionFactoryBean和MapperScannerConfigurer
测试
// Spring整合Mybatis
// 主要配置SqlSessionFactory 和 MapperScannerConfigurer 生成usermapper对象交给spring管理<br>// 依赖<br>
复制代码
<dependency><br> <groupId>org.mybatis</groupId><br> <artifactId>mybatis</artifactId><br> <version>3.5.10</version><br></dependency><br><dependency><br> <groupId>org.mybatis</groupId><br> <artifactId>mybatis-spring</artifactId><br><version>2.0.6</version>
复制代码
<dependency><br> <groupId>mysql</groupId><br> <artifactId>mysql-connector-java</artifactId><br> <version>5.1.49</version><br></dependency><br>// 不需要mybatis配置文件和配置扫描的mapper包,直接通过spring生成bean
复制代码
<bean id="userDao" ><br> <property name="usermapper" ref="userMapper"></property><br> </bean><br> <bean id="dataSource" ><br> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property><br> <property name="url" value="jdbc:mysql://localhost:3306/dianping"></property><br> <property name="username" value="root"></property><br> <property name="password" value="123"></property><br> </bean><br> <strong><bean ></strong><br><strong> <property name="dataSource" ref="dataSource"></property></strong><br><strong> </bean></strong><br><strong> <bean ></strong><br><strong> <property name="basePackage" value="com.springdemo.service.Mapper"></property></strong><br><strong> </bean></strong>
复制代码
// 测试在userdao中注入usermapper对象 操作数据库输出<br>
复制代码
public class userDaoImpl implements userDao{<br> private userMapper usermapper;// 类中定义依赖对象<br> public void setUsermapper(userMapper usermapper) {// 配置设置方式,Spring将对象作为参数传给this对象<br> this.usermapper = usermapper;<br> }<br> @Override<br> public void show(){<br> List<userDto> list = usermapper.getList();<br> for(userDto userDto:list){<br> System.out.println(userDto.toString());<br> }<br> }<br>}<br>// 结果
复制代码
userDto{id=1, phone='13686869696', nick_name='小鱼同学', password='', icon='/imgs/blogs/blog1.jpg'}
userDto{id=2, phone='13838411438', nick_name='可可今天不吃肉', password='', icon='/imgs/icons/kkjtbcr.jpg'}
userDto{id=4, phone='13456789011', nick_name='user_slxaxy2au9f3tanffaxr', password='', icon=''}
userDto{id=5, phone='13456789001', nick_name='可爱多', password='', icon='/imgs/icons/user5-icon.png'}
复制代码
2)需要引入第三方框架命名空间
ubbo 自定义命名空间 暂时先搁置
3.利用注解方式整合mybatis:标签替换为注解,配置文件替换为配置类
public class MybatisComponent {
@Bean("dataSource")
public DruidDataSource DataSource(){
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/dianping");
dataSource.setUsername("root");
dataSource.setPassword("123");
return dataSource;
}
@Bean
public SqlSessionFactoryBean SqlSessionFactoryBean(@Autowired DruidDataSource dataSource){
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
return sqlSessionFactoryBean;
}
}
@Configuration // 标注当前类是一个配置类(代替配置文件) + @Component
//<context:component-scan base-package="com.springdemo.service"></context:component-scan>
@ComponentScan(basePackages = "com.springdemo.service") //basePackages 数组
//<context:property-placeholder location="classpath:test.properties"></context:property-placeholder>
@PropertySource(value = {"classpath:test.properties"}) // key-value 配置文件 数组
@MapperScan(value = {"com.springdemo.service.Mapper"})
@Import(MybatisComponent.class) // 将MybatisComponent类收纳到SpringConfig下,不需要配置@Component注解
public class SpringConfig {
}
@Mapper
public interface userMapper {
List<userDto> getList();
}<br><br>// 测试<br>
复制代码
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfig.class);<br>userDao usedao = (userDao) applicationContext.getBean(userDao.class);<br>System.out.println(usedao);<br>usedao.show();<br><br>// 结果
复制代码
userDto{id=1, phone='13686869696', nick_name='小鱼同学', password='', icon='/imgs/blogs/blog1.jpg'}
userDto{id=2, phone='13838411438', nick_name='可可今天不吃肉', password='', icon='/imgs/icons/kkjtbcr.jpg'}
userDto{id=4, phone='13456789011', nick_name='user_slxaxy2au9f3tanffaxr', password='', icon=''}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4