mybatis映射器接口形式的增删改查
mybatis映射器接口形式的增删改
//接口
package com.csdn.mapper;
import com.csdn.bean.User;
public interface UserMapper {
void insertUserWithId(User user);
void insertUserByParam(int id, String name, String password);
}
//子配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.csdn.mapper.UserMapper">
<insert id="insertUserWithId">
insert into t_person values (#{id},#{name},#{password})
</insert>
<insert id="insertUserByParam">
# 传如进来的参数和param的顺序对应
insert into t_person values (#{param1}, #{param2}, #{param3})
</insert>
</mapper>
package com.csdn.mapper;
import com.csdn.bean.User;
import com.csdn.util.DBUtil;
import org.apache.ibatis.session.SqlSession;
import java.io.IOException;
/**
* @ClassName
* @Description TODO
* @Author sudi
* @Date 2020/5/3 17:29
*/
public class UserMapperTest {
public void insertUser(User user) throws IOException {
SqlSession sqlSession = null;
try {
sqlSession = new DBUtil().getSqlSession();
//使用sqlSession中原生方法是只能携带两个参数
// 但使用映射器接口的话可以传递任意多个参数
//这就是使用映射器接口的好处
sqlSession.insert("insertUserWithId",user);
sqlSession.commit();
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
}
public void insertUserByParam(int id, String name ,String password) throws IOException {
SqlSession sqlSession = null;
try {
sqlSession = new DBUtil().getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
//使用sqlSession中原生方法是只能携带两个参数
// 但使用映射器接口的话可以传递任意多个参数
//这就是使用映射器接口的好处
userMapper.insertUserByParam(id, name, password);
sqlSession.commit();
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
}
public static void main(String[] args) throws IOException {
UserMapperTest userMapperTest = new UserMapperTest();
userMapperTest.insertUser(new User(4,"name","password"));
userMapperTest.insertUserByParam(3,"name","password");
}
}
删和改不做演示,因为和增一样的方法。
mybatis映射器接口形式的查
//接口
package com.csdn.mapper;
import com.csdn.bean.User;
import java.util.List;
public interface UserMapper {
User selectUserById(int id);
List<User> selectAll();
}
//子配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.csdn.mapper.UserMapper">
<select id="selectUserById" resultType="com.csdn.bean.User">
select id, name, password from t_person where id = #{id}
</select>
<select id="selectAll" resultType="com.csdn.bean.User">
select id ,name, password from t_person
</select>
</mapper>
package com.csdn.mapper;
import com.csdn.bean.User;
import com.csdn.util.DBUtil;
import org.apache.ibatis.session.SqlSession;
import java.io.IOException;
import java.util.List;
/**
* @ClassName
* @Description TODO
* @Author sudi
* @Date 2020/5/3 17:29
*/
public class UserMapperTest {
public User selectUserById(int id) throws IOException {
SqlSession sqlSession = null;
try {
sqlSession = new DBUtil().getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.selectUserById(id);
return user;
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
}
public List<User> selectAll() throws IOException {
SqlSession sqlSession = null;
try {
sqlSession = new DBUtil().getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
return userMapper.selectAll();
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
}
public static void main(String[] args) throws IOException {
UserMapperTest userMapperTest = new UserMapperTest();
// userMapperTest.insertUser(new User(4,"name","password"));
// userMapperTest.insertUserByParam(3,"name","password");
//若是查询结果查询到了两条则会报错
//因为底层源码使用的是selectOne()这个方法
User user = userMapperTest.selectUserById(1);
System.out.println(user);
//查询多条则用List集合
List<User> users = userMapperTest.selectAll();
System.out.println(users);
}
}