Mybatis注解开发
注释开发
SQL类型主要分成:
- @select()
- @update()
- @insert()
- @delete()
在之前的开发中,我们使用mybatis,需要
1,配置文件
2,然后创建dao接口,定义方法
3,再然后就要创建mapper.xml文件,在mapper.xml文件中编写sql语句,
4,最后再把mapper文件配置在mybatis主配置文件中就可以进行测试了
首先修改主配置文件,。由之前 < mapper resource=“cn/com/dao/IUserDao.xml”/> 改成下面的class
<mappers>
<mapper class="cn.com.Ycy.mybatis.dao.userDao"/>
</mappers>
代码如下
在接口中
//查询所有user信息
@Select("select * from user")
List<user>selectAll();
测试类中
@Test
public void test1(){
userDao users = mybatisUtils.getSqlSession().getMapper(userDao.class);
List<user> u = users.selectAll();
for(user user: u){
System.out.println(user);
}
}
在接口中
@Update("update user set username=#{name} where id=#{id}")
int UpdateUser(@Param("id")int id,@Param("name")String name);
在测试类:
@Test
public void test4(){
SqlSession sqlSession = mybatisUtils.getSqlSession();
userDao users = sqlSession.getMapper(userDao.class);
int i = users.UpdateUser(1, "麻子");
System.out.println("更新了"+i+"条数据");
//改变了数据库中的信息 就要提交事务
sqlSession.commit();
sqlSession.close();
}
通过这两个例子,在对比xml配置开发,注释开发比较方便
但是注释开发的动态SQL就比较复杂,就是没有xml配置来的快,也没有xml看起来更舒服
代码附上:
@Select("<script>select * from user <if test=\"id !=null \">where id > #{id} </if></script>")
List<user>selectById(@Param("id") int id);
测试类:
@Test
public void test6(){
SqlSession sqlSession = mybatisUtils.getSqlSession();
userDao users = sqlSession.getMapper(userDao.class);
List<user> userList = users.selectById(29);
for(user user:userList){
System.out.println(user);
}
sqlSession.close();
}
在这里很明显,在java中写xml可读性和维护性太差,尤其当SQL很长时,就非常的麻烦
注释开发的增删改查
//查询
@Select("select * from user where id=#{id} or username=#{name}")
List<user>selectSome(@Param("id")int id,@Param("name")String name);
//插入
@Insert("insert into user values(#{id},#{username},#{birthday},#{sex},#{address})")
int insertUser(user user);
//改
@Update("update user set username=#{name} where id=#{id}")
int UpdateUser(@Param("id")int id,@Param("name")String name);
//删除
@Update("delete from user where id=#{id} and username=#{username}")
int DeleteUser(user user);
还没有评论,来说两句吧...