JPA注解 规范 实体与类的对应关系
a 所有的注解都是可选的
b 所有驼峰转下划线 例如singerName会在通用mapper的作用下转换成singer_name的形式
c @Table(name="songs") 指定表名 默认类名作为表名(会把类名的首字母从大写转换成小写)
d @Id 主键 下一行的字段是id,一般都建议写上
e @Column(name="字段名") 普通字段 默认属性名为字段名 可以指定字段名(出现实体类名想要和数据库表的名字不一样的时候)
f @Transient 指定该属性不与数据库关联,使用后查询就会不会管它,得到的值就会为null,
@Select("SELECT * FROM songs WHERE singer_name=#{sname}")List<Songs>find(String sname);
4.3 完整的SongsMapper接口版本
packagemapper;importcom.github.abel533.mapper.Mapper;importentity.Songs;importorg.apache.ibatis.annotations.Select;importjava.util.List;publicinterfaceSongsMapperextendsMapper<Songs>{@Select("SELECT * FROM songs WHERE singer_name=#{sname}")List<Songs>find(String sname);}
5 测试代码
@Testpublicvoidt1(){SqlSessionFactory sf =SqlSessionFactoryUtil.sf();SqlSession sqlSession = sf.openSession();SongsMapper mapper = sqlSession.getMapper(SongsMapper.class);//分页设置后 仅对最近的一条查询语句分页,第一个参数为当前页码数,第二个参数为一页的数据条数,这个是物理分页PageHelper.startPage(1,10);List<Songs> list = mapper.select(null);
list.forEach(System.out::println);}