增、删、改、查
1.根据用户ID查询用户
1.1接口中编写查询方法
//根据用户ID查询一个用户
User getUserByid(int id);
1.2在Mapper.xml中配置sql语句
<!--根据用户ID查询用户信息-->
<select id="getUserByid" resultType="com.ni.pojo.User" parameterType="int">
select*from mybatis.user where id=#{id}
</select>
ID :就是你自己定义的接口名
resultType:返回值类型,这里要返回User,要写它的全路径
parameterType:参数类型,ID的参数为int类型
1.3测试
@Test
public void getUserByid(){
SqlSession sqlsession = MyBatisUtils.getSession();
UserDao mapper = sqlsession.getMapper(UserDao.class);
User user = mapper.getUserByid(3);
System.out.println(user);
sqlsession.close();
}
2.增加一个用户
2.1接口中编写增加用户方法
//增加一个用户
int addUser(User user);
2.2在Mapper.xml中配置sql语句
<!--增加一个用户-->
<insert id="addUser" parameterType="com.ni.pojo.User">
insert into mybatis.user(id,name,pwd) value(#{id},#{name},#{pwd} );
</insert>
#{}:获取当前数据
2.3测试:
@Test
public void addUser(){
SqlSession sqlSession = MyBatisUtils.getSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
int res = mapper.addUser(new User(7, "红发", "123456"));
if(res>0){
System.out.println("插入成功");
}
sqlSession.commit();
sqlSession.close();
}
sqlSession.commit() 更新事务,一定要添加不然数据库不会更新,即使你的程序执行成功了但是,你的数据不会插入到数据库
3.修改用户数据
3.1接口中添加修改数据库方法
//修改用户数据
int updateUser(User user);
3.2Mapper.xml中配置sql语句
<!--修改用户数据-->
<update id="updateUser" parameterType="com.ni.pojo.User">
update mybatis.user set name=#{name},pwd=#{pwd} where id=#{id}
</update>
3.3测试
@Test
public void updateUser(){
SqlSession sqlSession = MyBatisUtils.getSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
mapper.updateUser(new User(5, "艾尼路", "125463"));
sqlSession.commit();
sqlSession.close();
}
4.删除用户数据
4.1接口中添加删除方法
//删除一个用户
int deleteUser(int id);
4.2Mapper.xml中配置sql语句
<!--删除用户-->
<delete id="deleteUser" parameterType="int">
delete from mybatis.user where id=#{id}
</delete>
4.3测试
@Test
public void deleteUser(){
SqlSession sqlSession = MyBatisUtils.getSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
mapper.deleteUser(6);
sqlSession.commit();
sqlSession.close();
}
5.万能的Map
当数据库里参数特别多时,你在Mapper.xml中配置sql语句要进行一一对应,而利用map可以减少操作
5.1接口中定义增加用户方法
int addUser2(Map<String,Object> map);
5.2Mapper.xml中sql语句配置
<!--Map-->
<insert id="addUser2" parameterType="map">
insert into mybatis.user(id,name,pwd) value(#{Userid},#{Username},#{Userpwd} );
</insert>
5.3测试
@Test
public void addUser2(){
SqlSession sqlSession = MyBatisUtils.getSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
Map<String,Object> map = new HashMap<String, Object>();
map.put("Userid","9");
map.put("Username","大妈");
map .put("Userpwd","156897456");
mapper.addUser2(map);
System.out.println(map);
sqlSession.commit();
sqlSession.close();
}
6.模糊查询 (like)
//模糊查询
List<User> getUserlike(String value);
<!--模糊查询-->
<select id="getUserlike" resultType="com.ni.pojo.User">
select*from mybatis.User where name #{%value%}
</select>
@Test
public void getUserlike(){
SqlSession sqlSession = MyBatisUtils.getSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
List<User> userList = mapper.getUserlike("%路%");
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}