要点
有另一种方法来完成语句映射。 它们映射的语句可以不用 XML 来配置,而可以使用 Java 注解来配置。
使用注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂一点的语句,Java 注解不仅力不从心,还会让你本就复杂的 SQL 语句更加混乱不堪。
如果你需要做一些很复杂的操作,最好用 XML 来映射语句。
需要在config.xml中注册Java接口
<mappers> <mapper class="com.mybatis.DAO.PeopleMapper"/> </mappers>
要用class=
查
public interface PeopleMapper {
@Select("select * from people")
List<People> getPeopleList();
}
增
可以先开启事务自动提交
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession(true);
}
}
Mapper.java
public interface PeopleMapper {
@Select("select * from people")
List<People> getPeopleList();
@Insert("insert into people(id, name, age, address) VALUES (#{id},#{name},#{age},#{address})")
int addPeople(People people);
}
test
public class PeopleDAOtest {
@Test
public void print() {
SqlSession sqlSession = MybatisUtils.getSqlSession();
PeopleMapper peopleMapper = sqlSession.getMapper(PeopleMapper.class);
List<People> people = peopleMapper.getPeopleList();
for (People p :people){
System.out.println(p);
}
sqlSession.close();
}
@Test
public void add(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
PeopleMapper peopleMapper = sqlSession.getMapper(PeopleMapper.class);
peopleMapper.addPeople(new People(6,"圣迭戈",456,"啥地方"));
print();
}
}
因为已经自动提交了,所以不需要sqlSession.commit();
删
注解@Param
只能用于基本数据类型
传入的参数只能和sql语句中参数一样

多个参数

样例
public interface PeopleMapper {
@Delete("delete people from people where id=#{uid}")
int delPeople(@Param("uid") int i);
}
test
public class PeopleDAOtest {
@Test
public void del(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
PeopleMapper peopleMapper = sqlSession.getMapper(PeopleMapper.class);
peopleMapper.delPeople(6);
print();
}
}
改
Mapper.java
public interface PeopleMapper {
@Update("update mybatis.people set name=#{name} ,age=#{age} ,address=#{address} where id=#{id}")
int updateP(People people);
}
test
public class PeopleDAOtest {
@Test
public void update(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
PeopleMapper peopleMapper = sqlSession.getMapper(PeopleMapper.class);
peopleMapper.updateP(new People(5,"圣迭戈",456,"啥地方"));
print();
}
}
总结
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)