UserDao.java:
public interface UserDao {
//查询所有信息
List<User> findAll();
//通过id查询
User getById(int id);
//插入数据
void insert(User user);
//修改
void update(User user);
//删除
void deleteUserByid(int id);
//查询
List<User> find(Map<String,Object> param);
//查询
User getById2(int id);
}
UserDaoImpl.java:
public class UserDaoImpl implements UserDao {
private SqlSessionFactory sqlSessionFactory;
public UserDaoImpl(SqlSessionFactory sqlSessionFactory){
this.sqlSessionFactory=sqlSessionFactory;
}
@Override
public List<User> findAll() {
SqlSession sqlSession = sqlSessionFactory.openSession();
List<User> users=sqlSession.selectList("com.wance.model.Dao.UserDao.findAll");
sqlSession.close();
return users;
}
@Override
public User getById(int id) {
SqlSession sqlSession = sqlSessionFactory.openSession();
User user=sqlSession.selectOne("com.wance.model.Dao.UserDao.getById",id);
sqlSession.close();
return user;
}
@Override
public void insert(User user) {
SqlSession sqlSession = sqlSessionFactory.openSession();
sqlSession.insert("com.wance.model.Dao.UserDao.insert",user);
//提交事务
sqlSession.commit();
sqlSession.close();
}
@Override
public void update(User user) {
SqlSession sqlSession = sqlSessionFactory.openSession();
sqlSession.update("com.wance.model.Dao.UserDao.update",user);
sqlSession.commit();
sqlSession.close();
}
@Override
public void deleteUserByid(int id) {
SqlSession sqlSession = sqlSessionFactory.openSession();
sqlSession.delete("com.wance.model.Dao.UserDao.deleteUserByid",id);
sqlSession.commit();
sqlSession.close();
}
@Override
public List<User> find(Map<String, Object> param) {
SqlSession sqlSession = sqlSessionFactory.openSession();
UserDao userDao = sqlSession.getMapper(UserDao.class);
List<User> list=userDao.find(param);
return list;
}
@Override
public User getById2(int id) {
SqlSession sqlSession = sqlSessionFactory.openSession();
UserDao userDao = sqlSession.getMapper(UserDao.class);
System.out.println(userDao.getById2(id));
return null;
}
}
配置文件:
<?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">
<!--namespace为UserDao的路径-->
<mapper namespace="com.wance.model.Dao.UserDao">
<!--配置查询所有信息-->
<!--id为方法的名称-->
<select id="findAll" resultType="com.wance.model.entity.User">
select * from user;
</select>
<select id="getById" resultType="com.wance.model.entity.User" parameterType="java.lang.Integer">
select * from user where id=#{id};
</select>
<insert id="insert" parameterType="com.wance.model.entity.User">
insert into user values (#{id},#{username},#{birthday},#{sex},#{address});
</insert>
<update id="update" parameterType="com.wance.model.entity.User">
update user set username=#{username} where id=#{id};
</update>
<delete id="deleteUserByid" parameterType="java.lang.Integer">
delete from user where id=#{id};
</delete>
<select id="find" parameterType="java.util.HashMap" resultType="com.wance.model.entity.User">
select * from user where username=#{username} <![CDATA[AND id<#{id}]]>
</select>
<resultMap id="ResultMap" type="com.wance.model.entity.User">
<id column="id" property="id"/>
<result column="username" property="username"/>
<result column="birthday" property="birthday"/>
<result column="sex" property="sex"/>
<result column="address" property="address"/>
</resultMap>
<select id="getById2" parameterType="java.lang.Integer" resultMap="ResultMap">
select * from user where id=#{id};
</select>
</mapper>
测试类:
public class UserDaoImplTest {
//1 读取配置文件
InputStream in= Resources.getResourceAsStream("SqlMapConfig.xml");
//2 创建SqlSessionFactory工厂
SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
SqlSessionFactory factory=builder.build(in);
UserDaoImpl udi=new UserDaoImpl(factory);
public UserDaoImplTest() throws IOException {
}
@Test
public void findAll() {
List<User> users=udi.findAll();
System.out.println(users);
}
@Test
public void getById() {
User user=udi.getById(1);
System.out.println(user);
}
@Test
public void insert() {
User user=new User();
user.setId(6);
user.setUsername("admin");
user.setBirthday(new Date());
user.setSex("man");
user.setAddress("南昌");
udi.insert(user);
}
@Test
public void update() {
User user=new User();
user.setId(6);
user.setUsername("aaa");
udi.update(user);
}
@Test
public void deleteUserByid() {
User user=new User();
user.setId(6);
udi.deleteUserByid(user.getId());
}
@Test
public void find(){
Map<String,Object> map=new HashMap<>();
map.put("username","ting");
map.put("id",7);
System.out.println(udi.find(map));
}
@Test
public void getById2() {
System.out.println(udi.getById2(2));
}