import com.qcby.entity.User;
import java.util.List;
public interface UserDao {
/**
* 全部查询
* @return
*/
public List<User> findAll();
/**
* 根据id进行查询
* @param id
*/
public User findById(int id);
/**
* 插入数据
* @param user
* @return
*/
public int insert(User user);
/**
* 删除
* @param id
* @return
*/
public int delete(int id);
/**
* 修改
* @param user
* @return
*/
public int update(User user);
/**
* 获取插入的id
* @param user
* @return
*/
public int insertGetId(User user);
/**
* 通过姓名模糊查询
* @return
*/
public List<User> likeByName(String username);
}
2.mapper层
<?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.qcby.Dao.UserDao">
<select id="findAll" resultType="com.qcby.entity.User">
select * from user
</select>
<select id="findById" resultType="com.qcby.entity.User" parameterType="java.lang.Integer">
select * from user where id = #{id}
</select>
<insert id="insert" parameterType="com.qcby.entity.User">
insert into user(username,birthday,sex,address)
values(#{username},#{birthday},#{sex},#{address})
</insert>
<delete id="delete" parameterType="java.lang.Integer">
delete from user where id = #{id}
</delete>
<update id="update" parameterType="com.qcby.entity.User">
update user set username = #{username},birthday = #{birthday},
sex = #{sex},address = #{address} where id = #{id}
</update>
<!--返回主键 :我们的主键需要设置自动递增 -->
<insert id="insertGetId" parameterType="com.qcby.entity.User">
<selectKey keyProperty="id" resultType="int" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
insert into user(username,birthday,sex,address)
values(#{username},#{birthday},#{sex},#{address})
</insert>
<!--${}:拼接 , #{}预编译 -->
<select id="likeByName" resultType="com.qcby.entity.User" parameterType="java.lang.String">
select * from user where username like '%${value}%';
</select>
</mapper>
3.测试类
import com.qcby.Dao.UserDao;
import com.qcby.entity.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;
public class UserTest {
private InputStream in = null;
private SqlSession session = null;
private UserDao mapper = null;
@Before
public void init() throws IOException {
//加载主配置文件,目的是为了构建SqlSessionFactory对象
in = Resources.getResourceAsStream("SqlMapConfig.xml");
//创建SqlSessionFactory对象
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
//通过SqlSessionFactory工厂对象创建SqlSesssion对象
session = factory.openSession();
//通过Session创建UserDao接口代理对象
mapper = session.getMapper(UserDao.class);
}
@After
public void destory() throws IOException {
//释放资源
session.close();
in.close();
}
/**
* 测试查询所有的方法
*/
@Test
public void findAll() throws IOException {
List<User> users = mapper.findAll();
for (User user:users) {
System.out.println(user.toString());
}
}
@Test
public void findById() {
User user = mapper.findById(2);
System.out.println(user.toString());
}
@Test
public void insert(){
User user = new User();
user.setAddress("蓬莱");
user.setBirthday(new Date());
user.setSex("女");
user.setUsername("张三");
int code = mapper.insert(user);
session.commit();
System.out.println(code);
}
@Test
public void delete(){
int code = mapper.delete(2);
session.commit();
System.out.println(code);
}
@Test
public void update(){
User user = new User();
user.setId(1);
user.setAddress("蓬莱");
user.setBirthday(new Date());
user.setSex("女");
user.setUsername("shsh");
int code = mapper.update(user);
session.commit();
System.out.println(code);
}
@Test
public void insertGetId(){
User user = new User();
user.setAddress("蓬莱");
user.setBirthday(new Date());
user.setSex("女");
user.setUsername("张三");
mapper.insertGetId(user);
session.commit();
System.out.println(user.getId());
}
@Test
public void likeByName(){
List<User> users = mapper.likeByName("峰");
for (User user: users) {
System.out.println(user);
}
}
}