位置
位于src文件夹项目
要点
格式一定要正确,不要乱敲空格、换行等上半部分作用类似于jdbc.property文件,连接数据库driver对应的value查找:mysql-connector-java-5.1.47.jar/META-INF/services/java.sql.Driverurl对应的value: jdbc:mysql:///库名username和password则为数据库的用户名和密码mappers标签:实现mapper(等同于dao)的业务(3种方式)
<mappers
>
<!--方式一:直接调用Mapper接口类
-->
<mapper
class="com.company.dao.UserMapper"/>
<!--方式二:直接调用mapper层
-->
<package name
="com.company.mapper"/>
<!--方式三:调用UserMapper
.xml,类似于实现类
-->
<mapper resource
="com/company/dao/UserMapper.xml"/>
</mappers
>
针对要点6的实现方式 针对方式一的实现: 注解——@业务的第一个单词(“sql语句”) 【注】?转为#{}
<!--方式一
-->
public interface UserMapper {
@
Select("select * from user")
List
<User
> selectAll();
@
Select("SELECT id,username,birthday,sex,address FROM USER WHERE id = #{id}")
User
selectById(int id
);
@
Insert("INSERT INTO USER (username, birthday, sex, address) VALUES (#{username}, #{birthday}, #{sex}, #{address})")
void insert(User user
);
@
Update("UPDATE USER SET username = #{username} , birthday = #{birthday} , sex = #{sex} , address = #{address} where id = #{id}")
void update(User user
);
@
Delete("DELETE FROM USER WHERE id = #{id}")
void delete(User user
);
}
针对方式三的实现: namespace:UserMapper的相对路径 id:业务方法名 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.company.dao.UserMapper">
<select id
="selectAll" resultType
="com.company.entity.User">
select
* from user
</select
>
</mapper
>
测试 针对每个业务进行test测试(最好学会debug查看测试)
public void selectById() {
SqlSessionFactory sqlSessionFactory
= MybatisUtil
.getSqlSessionFactory();
SqlSession sqlSession
= sqlSessionFactory
.openSession();
UserMapper mapper
= sqlSession
.getMapper(UserMapper
.class);
User user
= mapper
.selectById(1);
System
.out
.println(user
);
}