dao层:
java
package com.qcby.dao;
import com.qcby.entity.Student;
import com.qcby.entity.User;
import java.util.List;
public interface StudentDao {
List<Student> findAll();
Integer delete(Integer id);
Student findById(Integer id);
List<Student> findByName(String name);
List<Student> findByStudent(Student student);
Integer insert(Student student);
List<Student> findAllStudent(Integer pageSize,Integer pageStart);
List<Student> findAllStudentByName(Student student);
List<Student> findStudentByName(String name);
}
实体层:
java
package com.qcby.entity;
import java.util.List;
public class Student {
private Integer id;
private String name;
private String sex;
private String phone;
private String password;
private Integer age;
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", sex='" + sex + '\'' +
", phone='" + phone + '\'' +
", password='" + password + '\'' +
", age=" + age +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
mapper:
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.qcby.dao.StudentDao">
<!--id: 方法的名称-->
<!--resultType:数据返回的类型-->
<select id="findAll" resultType="com.qcby.entity.Student">
select * from student;
</select>
<delete id="delete" parameterType="java.lang.Integer">
delete from student where id = #{id}
</delete>
<select id="findById" resultType="com.qcby.entity.Student" parameterType="java.lang.Integer">
select * from studednt where id = #{id}
</select>
<select id="findByName" resultType="com.qcby.entity.Student" parameterType="java.lang.String">
select * from student where name = #{name}
</select>
<!--多个参数可以直接使用user对象-->
<select id="findByStudent" resultType="com.qcby.entity.Student" parameterType="com.qcby.entity.Student">
select * from student where name = #{username} and password = #{password}
</select>
<insert id="insert" parameterType="com.qcby.entity.Student">
insert into student (name,sex,phone,password,age) value (#{name},#{sex},#{phone},#{password},#{age})
</insert>
<!--返回主键,我们的主键需要设置自动递增 注册-->
<insert id="insertGetId" parameterType="com.qcby.entity.Student">
<selectKey keyProperty="id" resultType="java.lang.Integer" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
insert into student (name,sex,phone,password,age) values (#{name},#{sex},#{phone},#{password},#{age});
</insert>
<!--分页查询-->
<select id="findAllStudent" parameterType="java.lang.Integer" resultType="com.qcby.entity.Student">
select * from student limit #{param1} offset #{param2}
</select>
<select id="findAllUserByUserName" parameterType="com.qcby.entity.Student" resultType="com.qcby.entity.Student">
select * from student where name = #{name} limit #{pagesize} offset #{pageStart}
</select>
<!--模糊查询-->
<select id="findStudentByName" parameterType="java.lang.String" resultType="com.qcby.entity.Student">
select * from student where name like #{value};
</select>
</mapper>
Test文件:
java
import com.qcby.dao.StudentDao;
import com.qcby.entity.Student;
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.sql.Date;
import java.util.Arrays;
import java.util.List;
public class StudentTest {
private InputStream in = null;
private SqlSession session = null;
private StudentDao 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(StudentDao.class);
}
@After //@After: 后置通知, 在方法执行之后执行 。
public void destory() throws IOException {
//释放资源
session.close();
in.close();
}
@Test
public void aaa(){
List<Student> students = mapper.findAll();
for (Student student: students
) {
System.out.println(student.toString());
}
}
@Test
public void delete(){
mapper.delete(4);
session.commit();//事务提交
}
@Test
public void findById(){
Student student = mapper.findById(1);
System.out.println(student.toString());
}
@Test
public void findByName(){
List<Student> students = mapper.findByName("熊大");
for (Student student : students) {
System.out.println(student.toString());
}
}
@Test
public void findByUser(){
Student student = new Student();
student.setName("熊二");
student.setPassword("123");
List<Student> students = mapper.findByStudent(student);
for (Student student1 : students) {
System.out.println(student1.toString());
}
}
@Test
public void insert(){
Student student = new Student();
student.setSex("女");
student.setPhone("123444444");
student.setName("貂蝉");
mapper.insert(student);
session.commit();
}
@Test
public void findAllStudent(){
Integer pageSize = 5;
Integer pageIndex = 1;
Integer pageStart = pageSize * (pageIndex - 1);
List<Student> students = mapper.findAllStudent(pageSize, pageStart);
for (Student student1 : students) {
System.out.println(student1.toString());
}
}
@Test
public void findStudentByName(){
List<Student> students = mapper.findStudentByName("%张%");
for (Student student1 : students) {
System.out.println(student1.toString());
}
}
}