Flutter开发App的未来及其在各行业的应用潜力分析
636
2023-01-12
Mybatis CURD及模糊查询功能的实现
命名空间namespace:
配置文件中namespace中的名称为对应Mapper接口或者Dao接口的完整包名,必须一致!
1.查询(select)
select:
接口中的方法名与映射文件中的SQL语句ID 一一对应
id
parameterType
resultType
案例:根据id查询用户
1.写接口(在UserMapper中添加对应的方法)
public interface UserMapper {
//根据ID查询用户
User getuserByID(int id);
}
2.UserMapper.xml配置文件的编写Sql语句
select * from mybatis.user where id = #{id};
3.测试
@Test
public void getUserID(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.getuserByID(4);
System.out.println(user);
sqlSession.close();
}
注意:根据密码和名字直接查询用户
使用万能的Map方法
1.在接口方法中,直接传递Map;
User getuserByID2(Map
2.在编写sql语句的时候,需要传递参数的类型,参数类型是map
select * from mybatis.user where id = #{userID} and name =#{username};
此处的userID,username可以不是数据库里面的字段,用map方法添加就可。
3.在使用方法的时候,Map的 key 为 sql中取的值即可,没有顺序要求!
@Test
public void getUserID2(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
Map map= new HashMap
map.put("userID",2);
map.put("username","gou");
User user = mapper.getuserByID2(map);
System.out.println(user);
sqlSession.commit();
sqlSession.close();
}
总结:如果参数过多,我们可以考虑直接使用Map实现,如果参数比较少,直接传递参数即可
2.插入(insert)
insert
1.在UserMapper中添加对应的方法
int addUser(User user);
2.在UserMapper.xml中添加insert语句
insert into mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd});
3.测试
@Test
public void adduser(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int i = mapper.addUser(new User(4, "狗哥", "45412331"));
if(i>0){
System.out.println("插入成功");
}
//记得提交事物
sqlSession.commit();
sqlSession.close();
}
注意点:增、删、改操作需要提交事务!
3.更新(update)
1.编写接口方法
int updateUser(User user);
http://
2.编写接口对应的UserMapper.xml文件中的SQL
update mybatis.user set name=#{name},pwd=#{pwd} where id=#{id};
3.测试(记住一定要提交事物)
@Test
public void updateuser(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
System.out.println(sqlSession);
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int i = mapper.updateUser(new User(5, "hh", "55464545"));
if(i>0){
System.out.println("更新成功");
}
sqlSession.commit();
sqlSession.close();
}
4.删除(delete)
1.编写接口方法
int delete(int id);
2http://.编写对应配置文件的SQL
delete from mybatis.user where id=#{id};
3.测试(记得要提交事物)
@Test
public void deleteuser(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
System.out.println(sqlSession);
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int i = mapper.delete(4);
if(i>0){
System.out.println("更新成功");
}
sqlSession.commit();
sqlSession.close();
}
总结:所有的增删改操作都需要提交事务!
5.模糊查询(like)
直接在sql语句中拼接通配符,会引起sql注入
select * from mybatis.user where name like "%"#{value}"%";
测试:
@Test
public void getUserListByLike(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List
for (User user1 : user) {
System.out.println(user1);
}
sqlSession.commit();
sqlSession.close();
}
以上就是Mybatis CURD及模糊查询功能的实现的详细内容,更多关于Mybatis 模糊查询的资料请关注我们其它相关文章!
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~