博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis02--增删改查
阅读量:4562 次
发布时间:2019-06-08

本文共 6969 字,大约阅读时间需要 23 分钟。

1.修改StudentDao

public interface StudentDao {    /**     * 新增学生信息     */    void addStudent(Student student);    // 新增完毕之后有ID    void addStudentCacheId(Student student);    // 删除学生信息    void deleteStudent(Integer id);    // 修改    void updateStudent(Student student);    // 查询所有    List
selectAllStudents(); // 查询出来的是一个map集合 Map
selectAllStudentsMap(); // 查询指定的 Student selectById(Integer id); // 根据姓名模糊查询 List
selectByName(String name);}

2.修改StudentMapper

insert into student(age,name) values(#{age},#{name})
insert into student(age,name) values(#{age},#{name})
select @@identity
delete from student where id=#{sa}
update student set name=#{name},age=#{age},id=#{id} where id=#{id}

3.修改StudentDaoImpl

public class StudentDaoImpl implements StudentDao {    SqlSession session = null;    /**     * 新增学生信息     */    public void addStudent(Student student) {        try {            // 通过工具类获取session            session = SessionUtil.getSession();            /**             *  "addStudent" 要和mapper.xml文件中的id一致             *   增删改 操作  底层 执行的都是update方法               */            session.insert("addStudent", student);            // 必须手动让session提交 底层默认就提交了事务            session.commit();        } catch (Exception e) {            e.printStackTrace();        } finally {            if (session != null) {                session.close(); // 关闭session            }        }    }    public void addStudentCacheId(Student student) {        try {            // 通过工具类获取session            session = SessionUtil.getSession();            session.insert("addStudentCacheId", student);            // 必须手动让session提交 底层默认就提交了事务            session.commit();        } catch (Exception e) {            e.printStackTrace();        } finally {            if (session != null) {                session.close(); // 关闭session            }        }    }    // 删除    public void deleteStudent(Integer id) {        try {            // 通过工具类获取session            session = SessionUtil.getSession();            session.delete("deleteStudent", id);            // 必须手动让session提交 底层默认就提交了事务            session.commit();        } catch (Exception e) {            e.printStackTrace();        } finally {            if (session != null) {                session.close(); // 关闭session            }        }    }    // 修改学生信息    public void updateStudent(Student student) {        try {            // 通过工具类获取session            session = SessionUtil.getSession();            session.update("updateStudent", student);            // 必须手动让session提交 底层默认就提交了事务            session.commit();        } catch (Exception e) {            e.printStackTrace();        } finally {            if (session != null) {                session.close(); // 关闭session            }        }    }    // 查询返回list集合    public List
selectAllStudents() { List
students = new ArrayList
(); try { // 通过工具类获取session session = SessionUtil.getSession(); students = session.selectList("selectAllStudents"); // 查询就不需要提交事务了 } catch (Exception e) { e.printStackTrace(); } finally { if (session != null) { session.close(); // 关闭session } } return students; } // 返回map集合 public Map
selectAllStudentsMap() { Map
students = new HashMap
(); try { // 通过工具类获取session session = SessionUtil.getSession(); // 还是之前list的方法 但是 key放什么? key必须是查询出来实体类的属性值 students = session.selectMap("selectAllStudents", "name"); // 查询就不需要提交事务了 } catch (Exception e) { e.printStackTrace(); } finally { if (session != null) { session.close(); // 关闭session } } return students; } // 根据id查询指定的学生信息 public Student selectById(Integer id) { Student students = null; try { // 通过工具类获取session session = SessionUtil.getSession(); // 还是之前list的方法 但是 key放什么? key必须是查询出来实体类的属性值 students = session.selectOne("selectById", id); // 查询就不需要提交事务了 } catch (Exception e) { e.printStackTrace(); } finally { if (session != null) { session.close(); // 关闭session } } return students; } // 根据name模糊查询 返回list集合 public List
selectByName(String name) { List
students = new ArrayList
(); try { // 通过工具类获取session session = SessionUtil.getSession(); students = session.selectList("selectByName", name); // 查询就不需要提交事务了 } catch (Exception e) { e.printStackTrace(); } finally { if (session != null) { session.close(); // 关闭session } } return students; }}

4.修改测试类

public class StudentTest {    StudentDao dao;    @Before    public void before() {        dao = new StudentDaoImpl();    }    @Test    public void test() {        /**         * 之前和之后 都是显示 我们赋予的id值,         * 但因为数据库中 我们设置了 主键的自增,所以我们的id相当于没有从数据库中查询到        */        Student student = new Student("小黑333", 10);        System.out.println("方法之前==" + student);        dao.addStudent(student);        System.out.println("方法之后==" + student);    }    @Test    public void addStudentCacheId() {        Student student = new Student("小黑33", 10);        // 方法之前因为没有insert语句 所以也是没有ID的        System.out.println("方法之前==" + student);        dao.addStudentCacheId(student);        // 产生了 数据库中的id        System.out.println("方法之后==" + student);    }    // 删除    @Test    public void delete() {        dao.deleteStudent(17);    }    // 修改    @Test    public void update() {        Student student = new Student(19, "小黑3111", 10);        student.setId(17);        dao.updateStudent(student);    }    // 返回list    @Test    public void selectList() {        List
allStudents = dao.selectAllStudents(); for (Student student : allStudents) { System.out.println(student); } } // 返回map @Test public void selectMap() { Map
students = dao.selectAllStudentsMap(); /** * 因为以name属性作为 了key * map集合key不允许出现重复的数据 * 所以后一个会覆盖前一个 */ System.out.println(students.get("小黑122")); } // 返回指定的一个学生信息 @Test public void selectOne() { Student students = dao.selectById(1); System.out.println(students); } // 模糊查询学生信息 @Test public void selectByName() { List
students = dao.selectByName("1"); for (Student student : students) { System.out.println(student); } }}

转载于:https://www.cnblogs.com/HHR-SUN/p/7201273.html

你可能感兴趣的文章
基功太差,怨不得天,得下苦功——WAP面试,正式招聘号角响起
查看>>
resin4开启jmx
查看>>
Spring Boot+Mybatis+Pagehelper分页
查看>>
jsvc 启动java 在linux下的实现原理
查看>>
Ubuntu创建新用户并增加管理员权限
查看>>
MySQL库目录下db.opt文件的作用
查看>>
HTTP_referrer
查看>>
模拟表单方式上传文件
查看>>
消息中间件--ActiveMQ&JMS消息服务
查看>>
VS调SQL中存储过程实现登陆
查看>>
ubuntu安装hadoop2.6
查看>>
技术栈
查看>>
Docker Centos安装Redis以及问题处理
查看>>
解决JS弹出新窗口被浏览器阻止的解决方案
查看>>
最短路——SPFA算法模板
查看>>
ASP.NET Web Game 构架设计2--数据库设计
查看>>
第六章.解决大问题
查看>>
ASIHTTP
查看>>
iOS 9: UIStackView入门
查看>>
Android——SQLite数据库(一)创建数据库、创建表、初始化数据
查看>>