Spring、SpringMVC、Mybatis的各项配置的整合详解
SSM配置后的相关验证——dao层验证
SSM配置后的相关验证——service层验证
SSM配置后的相关验证——controller层验证
这里将从dao层、service层和controller层逐一地检查相关的配置是否成功了。
1)dao层验证
- 由于dao层是关于对数据库的操作,那么就得有一个实体类,以及要创建一个表,在这里我就创建了一个Account类,还有一个account表,
public class Account {
private int uid;
private String name;
private double money;
public int getId() {
return uid;
}
public void setId(int uid) {
this.uid = uid;
}
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;
}
}
CREATE TABLE `account` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`money` double DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 在dao目录中创建接口Accountdao.java,并编写一个方法insertAccount用于插入一行数据到account表中
public interface AccountDao {
int insertAccount(@Param("account")Account account);
}
- 在resource/mapper目录下创建accountdao.xml,用于编写相关sql语句
<?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.sakura.dao.AccountDao">
<!--对于 keyColumn = " "中写入的是数据库中对应的属性值,而keyProperty = " "中写入的是entity中实体类的属性值-->
<!--useGeneratedKeys为true表示插入成功后会返回其主键值并设置在原先插入的实体类中
(就比如,你插入只可能是name和money,而主键id是在插入后自动生成的,而将其设置为true后,会返回插入
后生成的主键)-->
<insert id="insertAccount" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
INSERT INTO account(name,money)
VALUES
(#{account.name},#{account.money})
</insert>
</mapper>
- 我们在src下创建test测试目录,并将其标记为测试源
根,并在目录下创建com.sakura包,以及在该包下创建BaseTest.java,用于配置spring和junit整合
/**
1. 配置spring和junit整合,junit启动时加载springioc容器
*/
@RunWith(SpringJUnit4ClassRunner.class)
//告诉junitspring配置文件的位置
@ContextConfiguration(
{"classpath:spring/spring-dao.xml","classpath:spring/spring-service.xml"})
public class BaseTest {
}
- 在test目录下的com.sakura包下再创建dao包,并创建accountdaoTest.java的测试类
public class AccountDaoTest extends BaseTest {
@Autowired
private AccountDao dao;
@Test
public void testinsert(){
Account account = new Account();
account.setName("zhan3");
account.setMoney(1000.0);
int effecedNum = dao.insertAccount(account);
System.out.println(effecedNum);
System.out.println(account.getId());
}
}
mysql上显示的插入数据也与预期的相符,控制台也输出了插入后获取的主键id为3
至此,dao层相关的验证也就说明配置成功了。