package com.itheima.dao;import com.itheima.domain.User;import org.apache.ibatis.annotations.*;import java.util.List;publicinterfaceUserDao{/**
* 查詢所有用戶信息
* @return
*/@Select("select * from user")@Results(id="userMap",
value ={@Result(id=true,column ="id",property ="id"),@Result(column ="username",property ="username"),@Result(column ="birthday",property ="birthday"),@Result(column ="address",property ="address"),@Result(column ="sex",property ="sex")})public List<User>findAll();/**
* 根據id查詢用戶信息
* @param id
* @return
*/@Select("select * from user where id = #{id}")public User findById(int id);/**
* 聚合函數查詢用戶數量
* @return
*/@Select("select count(*) from user")publicintfindCount();/**
* 添加用戶
* @param user
*/@Insert("insert into user(username,birthday,address,sex)"+" value(#{username},#{birthday},#{address},#{sex})")@SelectKey(keyColumn ="id",keyProperty ="id",resultType = Integer.class,before =false,
statement ={"select last_insert_id()"})publicvoidaddUser(User user);/**
* 修改用戶信息
* @param user
*/@Update("update user set username=#{username},birthday=#{birthday},address=#{address},sex=#{sex} where id = #{id}")publicvoidupdateUser(User user);/**
* 通過id刪除用戶信息
* @param id
*/@Delete("delete from user where id = #{id}")publicvoiddeleUser(int id);}
Test
package com.itheima.test;import com.itheima.dao.UserDao;import com.itheima.domain.User;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.After;import org.junit.Before;import org.junit.Test;import java.io.IOException;import java.io.InputStream;import java.util.Date;import java.util.List;publicclassMybatisTest{private InputStream in;private SqlSessionFactory factory;private SqlSession session;private UserDao userDao;/**
* 初始化獲取代理對象
* @throws IOException
*/@Beforepublicvoidinit()throws IOException {//1.讀取配置文件
in = Resources.getResourceAsStream("SqlMapConfig.xml");//2.創建SqlSessionFactory工廠
SqlSessionFactoryBuilder builder =newSqlSessionFactoryBuilder();
factory = builder.build(in);//3.使用工廠生產SqlSession對象
session = factory.openSession();//4.使用SqlSession創建Dao接口的代理對象
userDao = session.getMapper(UserDao.class);}/**
* 釋放資源
*/@Afterpublicvoiddestory()throws IOException {//事務回滾
session.commit();
session.close();
in.close();}/**
* 入門案例
* @param
*/@TestpublicvoidfindAllTest(){
List<User> userDaoAll = userDao.findAll();for(User user : userDaoAll){
System.out.println(user);}}@TestpublicvoidfindByIdTest(){int id =41;
User user = userDao.findById(id);
System.out.println(user);}@TestpublicvoidfindCountTest(){int count = userDao.findCount();
System.out.println(count);}@TestpublicvoidaddUserTest(){
User user =newUser();
user.setUsername("呵呵");
user.setBirthday(newDate());
user.setAddress("addUserTest");
user.setSex("男");
userDao.addUser(user);
System.out.println(user.getId());}@TestpublicvoiddeletUserTest(){int id =42;
userDao.deleUser(id);}@TestpublicvoidupdateUserTest(){
User user = userDao.findById(43);
user.setUsername("upadaeUserTest");
userDao.updateUser(user);}}