/*ClassesDao.java*/
public interface ClassesDao {
/*查询所有班级*/
public List<Classes> selectAll();
/*添加班级*/
public int insertClasses(Classes classes);
/*修改班级*/
public int updateClasses(Classes classes);
/*删除班级*/
public int deleteClasses(int id);
/*根据id查询班级信息*/
public Classes selectOne(int id);
/*根据名称模糊查询班级信息*/
public List<Classes> selectByName(String name);
/*查询总班级数*/
public int selectTotal();
}
Mapper.xml
<!--ClassesMapper.xml-->
<?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.srzx.dao.ClassesDao">
<!--查询所有班级-->
<select id="selectAll" resultType="com.srzx.entity.Classes">
select * from classes;
</select>
<!--添加班级-->
<insert id="insertClasses" parameterType="com.srzx.entity.Classes">
<!--配置插入操作后,获取插入的数据-->
<selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER">
select last_insert_id()
</selectKey>
insert into classes(name,num,major) values(#{name},#{num},#{major})
</insert>
<!--修改班级-->
<update id="updateClasses" parameterType="com.srzx.entity.Classes">
update classes set name=#{name},num=#{num},major=#{major} where id=#{id}
</update>
<!--删除班级-->
<delete id="deleteClasses" parameterType="int">
delete from classes where id=#{id};
</delete>
<!--根据id查询班级信息-->
<select id="selectOne" parameterType="int" resultType="com.srzx.entity.Classes">
select * from classes where id=#{id}
</select>
<!--根据名称模糊查询班级信息-->
<select id="selectByName" parameterType="string" resultType="com.srzx.entity.Classes">
select * from classes where name like #{name}
</select>
<!--查询总班级数-->
<select id="selectTotal" resultType="int">
select count(id) from classes;
<!--模糊查询的第二种方式-->
<!-- select * from classes where name like '%${value}%'-->
</select>
</mapper>
Test
//TestClasses.java
public class TestClasses {
private InputStream is = null;
private SqlSession session = null;
private ClassesDao cd = null;
@Before//用于在测试方法执行之前执行
public void init(){
try {
//1.读取配置文件,生成字节输入流
is = Resources.getResourceAsStream("mybatis-config.xml");
//2.获取SqlSessionFactory
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
//3.获取SqlSession对象
session = factory.openSession(true);
//4.获取dao的代理对象
cd = session.getMapper(ClassesDao.class);
} catch (IOException e) {
e.printStackTrace();
}
}
@After//用于在测试方法执行之后执行
public void destroy()throws IOException{
//提交事务
session.commit();
//6.释放资源
session.close();
is.close();
}
/*测试查询所有*/
@Test
public void testSelectAll(){
List<Classes> list = cd.selectAll();
for (Classes c:list) {
System.out.println("c = " + c);
}
}
/*测试添加操作*/
@Test
public void testInsertClasses(){
Classes classes = new Classes("sui1911",30,"ui");
int row = cd.insertClasses(classes);
System.out.println("row = " + row);
System.out.println("classes = " + classes);
}
/*测试修改操作*/
@Test
public void testUpdateClasses(){
Classes clz = new Classes(10018,"sui1908",50,"ui");
int row2 = cd.updateClasses(clz);
System.out.println("row2 = " + row2);
System.out.println("clz = " + clz);
}
/*测试删除操作*/
@Test
public void testDeleteClasses(){
int row3 = cd.deleteClasses(10043);
System.out.println("row3 = " + row3);
}
/*测试根据id查询班级信息操作*/
@Test
public void testSelectOne(){
Classes clz2 = cd.selectOne(10018);
System.out.println("clz2 = " + clz2);
}
/*测试根据名称模糊查询班级信息*/
@Test
public void testSelectByName(){
List<Classes> list2 = cd.selectByName("%u%");
/*List<Classes> list2 = cd.selectByName("u");*/
for (Classes c:list2) {
System.out.println("c = " + c);
}
}
/*测试查询总班级数*/
@Test
public void testSelectTotal(){
int count = cd.selectTotal();
System.out.println("count = " + count);
}
}