內建Mybatis架構
1.引入依賴
<!--整合mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
說明:由于springboot整合mybatis版本中預設依賴mybatis 是以不需要額外引入mybati版本,否則會出現沖突
2.編寫application.yml檔案
spring:
mvc:
view:
prefix: /
suffix: .jsp
datasource:
type: org.apache.commons.dbcp.BasicDataSource #指定連接配接池類型
driver-class-name: com.mysql.jdbc.Driver #指定驅動
url: jdbc:mysql://localhost:3306/cmfz #指定url
username: root #指定使用者名
password: root #指定密碼
3.編寫application.yml加入mybatis配置
#配置檔案中加入如下配置:
mybatis:
mapper-locations: classpath:com/baizhi/mapper/*.xml #指定mapper配置檔案位置
type-aliases-package: com.baizhi.entity #指定起别名來的類
4.入口類加入@MapperScan
//入口類中加入如下配置:
@SpringBootApplication
@MapperScan("com.baizhi.dao") //必須在入口類中加入這個配置
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
5.建表
CREATE TABLE `t_clazz` (
`id` varchar(40) NOT NULL,
`name` varchar(80) DEFAULT NULL,
`no` varchar(90) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
6.建立實體類
public class Clazz {
private String id;
private String name;
private String no;
//get set 方法省略....
}
7.開發DAO接口和Mapper配置檔案
public interface ClazzDAO {
List<Clazz> findAll();
}
<?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.baizhi.dao.ClazzDAO">
<select id="findAll" resultType="Clazz">
select * from t_clazz
</select>
</mapper>
8.開發Service接口和實作
//接口
public interface ClazzService {
List<Clazz> findAll();
}
//實作
@Service
@Transactional
public class ClazzServiceImpl implements ClazzService {
@Autowired
private ClazzDAO clazzDAO;
@Transactional(propagation = Propagation.SUPPORTS)
@Override
public List<Clazz> findAll() {
return clazzDAO.findAll();
}
}
9.編寫測試類
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class TestClazzService {
@Autowired
private ClazzService clazzService;
@Test
public void test(){
List<Clazz> all = clazzService.findAll();
for (Clazz clazz : all) {
System.out.println(clazz);
}
}
}