作者:白猫警员123 | 来源:互联网 | 2023-09-14 15:57
1.步骤:
1.引入依赖
- junit
- mybatis
- mysql
- spring相关
- aop织入
- mybatis-spring
- lombok:可有可无
junit
junit
4.12
mysql
mysql-connector-java
5.1.47
org.mybatis
mybatis
3.5.2
org.springframework
spring-webmvc
5.1.9.RELEASE
org.springframework
spring-jdbc
5.1.9.RELEASE
org.aspectj
aspectjweaver
1.8.13
org.mybatis
mybatis-spring
2.0.2
org.projectlombok
lombok
1.18.16
2.编写配置文件
3.测试
2.回忆MyBatis
2.1编写实体类
2.2编写mybatis配置文件
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
2.3编写接口
2.4Mapper.xml
PUBLIC "-//mybatis.org//DTD mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
insert into user (`name`,psw) values (#{name},#{psw});
2.5测试
public class MyTest {
@Test
public void test1(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = new User();
user.setId(111);
user.setName("333");
user.setPsw("zzz333sss");
int i = mapper.addUser(user);
System.out.println(i);
sqlSession.commit();//!!!
sqlSession.close();//!!!
}
}
可能出现问题:
1.增删改注意设置自动提交或手动提交
sqlSession.commit();//!!!
sqlSession.close();//!!!
或(自动提交)
sqlSessionFactory.openSession(true);
2.静态资源导出问题(这个忘了可太致命了!)
src/main/java
**/*.properties
**/*.xml
src/main/resources
**/*.properties
**/*.xml
false
3.Mybatis-Spring学习
3.1方法一:
- 引入jar包
org.mybatis
mybatis-spring
2.0.2
- spring配置文件
- dataSoure:使用Spring的数据源代替mybatis的配置
- sqlSessionFactroy
- sqlSession
创建实现类:UserMapperImpl.java
public class UserMapperImpl implements UserMapper {
private SqlSessionTemplate sqlSession;
public void setSqlSession(SqlSessionTemplate sqlSession) {
this.sqlSession = sqlSession;
}
public int addUser(User user) {
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
return mapper.addUser(user);
}
- 在spring-dao中注册实现类
- 测试:
思路整理:
- 编写数据源
- sqlSessionFactory:核心对象
- sqlSessionTemplate:核心对象(sqlSession)
- 接口加实现类:spring整合mybatis多了一个实现类,因为spring接管这个对象可以自动创建。而mybatis无法实现自动创建,所以需要实现类
- 将实现类注入到Spring中
- 测试使用
3.2、方法二
继承SqlSessionDaoSupport,调用getSqlSession();
前面步骤类似,只是sqlSession由自己创建变成了由SqlSessionDaoSupport中getSqlSession()方法创建
(去掉sqlSession bean)