马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1. 数据库新建表
- CREATE TABLE `table_emp`(
- id INT AUTO_INCREMENT,
- emp_name CHAR(100),
- age INT,
- emp_salary DOUBLE(10,5),
- PRIMARY KEY(id)
- );
- INSERT INTO `table_emp`(emp_name,age,emp_salary) VALUES("tom",18,200.33);
- INSERT INTO `table_emp`(emp_name,age,emp_salary) VALUES("jerry",19,666.66);
- INSERT INTO `table_emp`(emp_name,age,emp_salary) VALUES("andy",20,777.77);
复制代码 2. 数据库表模子Bean
- @Data
- public class Emp {
- private Integer id;
- private String empName;
- private Integer age;
- private Double empSalary;
- }
复制代码 3. 导入sql依赖
在pom.xml中添加依赖
- <dependency>
- <groupId>com.mysql</groupId>
- <artifactId>mysql-connector-j</artifactId>
- <scope>runtime</scope>
- </dependency>
复制代码 4. 数据库配置
在 application.properties 中新增配置
- spring.application.name=mybatis-01-helloworld
- spring.datasource.url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/harrylin
- spring.datasource.username=root
- spring.datasource.password=******
- spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
复制代码 5. JdbcTemplate的实现方法
5.1 编写Dao接口
- public interface EmpDao {
- Emp getEmpDaoById(Integer id);
- }
复制代码 5.2 编写接口实现类
此处通过sql查询出来的结果是通过jdbcTemplate的queryForObject方法完成类和结果的映射,此中类是由方法入参Emp.class决定。
- @Repository
- public class EmpDaoImpl implements EmpDao {
- @Autowired
- JdbcTemplate jdbcTemplate;
- @Override
- public Emp getEmpDaoById(Integer id) {
- String sql = "select * from table_emp where id = ?";
- Emp emp = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(Emp.class), id);
- return emp;
- }
- }
复制代码 6. MyBatis的实现方法
6.1 导入mybatis依赖
在pom.xml中添加依赖
- <dependency>
- <groupId>org.mybatis.spring.boot</groupId>
- <artifactId>mybatis-spring-boot-starter</artifactId>
- <version>3.0.3</version>
- </dependency>
复制代码 6.1 编写mapper接口
注意,此处接口注解有别于JdbcTemplate接口注解,需标注@Mapper,而非@Repository
- @Mapper // 告诉Spring 这是myBatis操作数据库用的接口
- public interface EmpMapper { // Mapper接口
- // 按照id查询
- Emp getEmpById(Integer id);
- }
复制代码 6.2 编写mapper.xml实现
此文件可通过安装mybatisX插件
然后把光标停留在mapper接口处,Alt+enter 自动生成mapper.xml文件,文件头自动生成。
此处通过sql查询出来的结果和类之间的映射是mybatis完成,类是由mapper.xml配置中的
resultType全定名类决定的
- <?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.hongshan.mybatis.mapper.EmpMapper">
- </select>
- <select id="getAllEmp" resultType="com.hongshan.mybatis.bean.Emp">
- select * from table_emp
- </select>
- </mapper>
复制代码 6.3 编写配置
在配置文件 application.properties 中新增配置
- # 告诉 mybatis xml 文件在哪里
- mybatis.mapper-locations=classpath:mapper/**.xml
- # 驼峰映射
- mybatis.configuration.map-underscore-to-camel-case=true
复制代码 7. 测试
这里自动注入时二者也有区别,JdbcTemplate使用的是实现类注入,
而mybatis是直接用的mapper接口注入
- @SpringBootTest
- class Mybatis01HelloworldApplicationTests {
- @Autowired
- EmpMapper mapper;
- @Autowired
- EmpDao empDao;
- @Test
- void getEmpById_test() {
- Emp empById = mapper.getEmpById(1);
- System.out.println(empById);
- }
- @Test
- void getDaoEmpById_test(){
- Emp empDaoById = empDao.getEmpDaoById(1);
- System.out.println(empDaoById);
- }
- }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |