MyBatis实现Mapper配置并查询数据

什么是Mapper

drop database if exists mybatis_demo;

create database mybatis_demo;

use mybatis_demo;

create table user (
id int auto_increment primary key,
username varchar(20),
age int,
score int
);

insert into user (id, username, age, score) values
(1,'peter', 18, 100), (2,'pedro', 24, 200),
(3,'jerry', 28, 500), (4,'mike', 12, 300),
(5,'tom', 27, 1000);

注解方式使用Mapper

<!-- mapper配置 -->
<mappers>
<mapper class="mapper.UserMapper"/>
</mappers>
package mapper;

public interface UserMapper {
String selectUsernameById(Integer id);
@SuppressWarnings({"Duplicates"})
public class UserTest {
public static void main(String[] args) throws IOException, SQLException {
InputStream configuration = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
SqlSession session = sqlSessionFactory.openSession();
UserMapper mapper = session.getMapper(UserMapper.class);
String username = mapper.selectUsernameById(1);
System.out.println("username: " + username);
session.close();
}
}

XML方式使用Mapper

/**
* 通过用户id查询用户年龄
*
* @param id 用户id
* @return 用户年龄
*/
<?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="mapper.UserMapper">
</mapper>
<select id="selectUserAgeById" resultType="java.lang.Integer">
SELECT age FROM user WHERE id = #{id}
</select>

User模块测试类:UserTest.java
Integer age = mapper.selectUserAgeById(1);
System.out.println("age: " + age);

select-resultType

<select id="selectUserById" resultType="">
SELECT * FROM user WHERE id = #{id}
</select>
package entity;

public class User {
private Integer id;
private String username;
private Integer age;
private Integer score;
}
/**
* 通过用户id查询用户信息
*
* @param id
* @return
*/
User selectUserById(Integer id);
User user = mapper.selectUserById(1);
System.out.println(user);

select-resultMap

<resultMap id="userMap" type="entity.User">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="age" column="age"/>
<result property="score" column="score"/>
</resultMap>


 
posted @ 2021-04-14 21:29  至安望月  阅读(218)  评论(0)    收藏  举报