Mybatis的Mapper接口方式实现简单crud操作:

  1.创建实体类 与数据库对应

      我的实体类是《Student》  

          

 package com.hxzy.mybatis.pojo;

 import lombok.Data;

 @Data
public class Student {
private Integer s_id;
private String s_name;
private String s_address; /**
* 有参构造方法
* @param s_id
* @param s_name
* @param s_address
*/
public Student(Integer s_id, String s_name, String s_address) {
this.s_id = s_id;
this.s_name = s_name;
this.s_address = s_address;
} /**
* 无参构造
*/
public Student() { } @Override
public String toString() {
return "Student{" +
"s_id=" + s_id +
", s_name='" + s_name + '\'' +
", s_address='" + s_address + '\'' +
'}';
}
}

      2.我的数据库表是student  《注意表字段要和实体类对应!!

      

      3.创建配置文件 (一般放在接口包中 ,名字为 接口名+Mapper.xml)

                    我的名字是 Student_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">
<!--
配置namespace 这个路径就是接口所在的路径
-->
<mapper namespace="com.hxzy.mybatis.pojo.Student_Mapper"> <select id="select_student" parameterType="int" resultType="com.hxzy.mybatis.pojo.Student">
select * from student where s_id = #{id}
</select> <select id="select_all_student" resultType="com.hxzy.mybatis.pojo.Student" >
select * from student;
</select> <select id="du_student" resultType="com.hxzy.mybatis.pojo.Student" parameterType="String">
select * from student where student.s_name like "${value}%"
</select> <select id="insert_student" parameterType="com.hxzy.mybatis.pojo.Student">
insert into student values(#{s_id},#{s_name},#{s_address})
</select> <delete id="delete_student" parameterType="String">
delete from student where student.s_name = #{name}
</delete> <update id="update_student" parameterType="com.hxzy.mybatis.pojo.Student">
update student set student.s_name = #{s_name} where student.s_id = #{s_id}
</update> </mapper>

        4.创建核心配置文件 (这个时候mybatis的配置文件  一般都叫 Mybatis_cfg.xml)

          

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="test1"> <!--配置数据库的信息-->
<environment id="test1">
<!--开启JDBC的事务-->
<transactionManager type="JDBC"></transactionManager>
<!--配置一些必要的信息-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/stu"></property>
<property name="username" value="root" ></property>
<property name="password" value="gubin"></property>
</dataSource>
</environment>
</environments>
<!--p配置核心配置文件-->
<mappers>
<mapper resource="student_Mapper.xml"></mapper>
</mappers>
</configuration>

          5. 创建接口 (接口里面的方法名  就是Student_Mapper.xml的id)

package com.hxzy.mybatis.pojo;

import java.util.List;

public interface Student_Mapper {
/**
* 查询单个学生
* @param i
* @return
*/
Student select_student(int i);
/**
* 查询全部的学生
*/
List<Student> select_all_student();
/**
* 查询姓杜的学生
*/
List<Student> du_student(String str);
/**
* 添加学生
*/
void insert_student(Student student);
/**
* 删除学生
*/
void delete_student(String str);
/**
* 修改学生
*/
void update_student(Student student);
}

    编写测试类:

         

package com.hxzy.mybatis.test;

import com.hxzy.mybatis.entity.SqlSession_entity;
import com.hxzy.mybatis.pojo.Student;
import com.hxzy.mybatis.pojo.Student_Mapper;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test; import java.util.List; public class Test_mybatis {
/**
* 查询单个学生
*/
@Test
public void select_student(){
//得到SqlSession 对象
SqlSession session = SqlSession_entity.getSession();
//此处省略了Statement语句的编写
Student_Mapper student_mapper = session.getMapper(Student_Mapper.class);
//加载interface中的方法
Student student = student_mapper.select_student(1);
session.close();
System.out.println(student);
}
/**
* 查询多个学生
*/
@Test
public void select_all_student(){
//获得Session对象
SqlSession session = SqlSession_entity.getSession();
//反射技术 将接口加载到内存
Student_Mapper student_mapper = session.getMapper(Student_Mapper.class);
//将返回结果存入集合中
List<Student> list = student_mapper.select_all_student();
//增强for遍历
for (Student student : list) {
System.out.println(student);
}
session.close();
}
/**
* 查询所有姓杜的学生
*/
@Test
public void test_du(){
//获得Session
SqlSession session = SqlSession_entity.getSession();
Student_Mapper student_mapper = session.getMapper(Student_Mapper.class);
List<Student> list = student_mapper.du_student("杜");
System.out.println(list);
session.close();
}
/**
* 添加学生
*/
@Test
public void tst_add(){
//获得Session
SqlSession session = SqlSession_entity.getSession();
Student_Mapper student_mapper = session.getMapper(Student_Mapper.class);
//添加值
student_mapper.insert_student(new Student(5,"黄小斌","石家庄"));
//提交
session.commit();
//关闭
session.close();
}
/**
* 删除学生
*/
@Test
public void delete_student()
{
SqlSession session = SqlSession_entity.getSession();
Student_Mapper student_mapper = session.getMapper(Student_Mapper.class);
student_mapper.delete_student("刘啊文");
session.commit();
session.close();
}
/**
* 修改学生
*/
@Test
public void update_student()
{
SqlSession session = SqlSession_entity.getSession();
System.out.println();
Student_Mapper student_mapper = session.getMapper(Student_Mapper.class);
student_mapper.update_student(new Student(4,"小阿六","避暑山庄")); session.commit();
session.close();
} }

 

Mybatis框架 使用接口Mapper实现数据库的crud操作的更多相关文章

  1. 数据库的CRUD操作

    一:数据库的CRUD操作,C是指create新增,R是指retrieve检索,U是指update更改,D是指delete删除 SQL语句分为3类: 1.DDL指数据定义语言如:create,drop, ...

  2. MyBatis框架的insert节点-向数据库中插入数据

    需求:使用mybatis框架中的insert元素节点向数据库中插入数据 UserMapper.xml UserMapper.java 编写测试方法: @Test public void testAdd ...

  3. Spring Boot使用Spring Data Jpa对MySQL数据库进行CRUD操作

    只需两步!Eclipse+Maven快速构建第一个Spring Boot项目 构建了第一个Spring Boot项目. Spring Boot连接MySQL数据库 连接了MySQL数据库. 本文在之前 ...

  4. 4月18 数据库的CRUD操作

    php主要是实现B/S Brower Server;此外还有C/S:Client Server暂时不考虑: LAMP: Linux系统 A阿帕奇服务器 Mysql数据库 Php语言,而现在学的是在wi ...

  5. MyBatis框架的使用解析!数据库相关API的基本介绍

    动态SQL if 根据条件包含where子句的一部分 <select id="findActiveBlogLike" resultType="Blog"& ...

  6. MyBatis 对数据库进行CRUD操作

    1.update修改 uodate修改也可以使用之前的机制在配置文件中直接编写sql 但是update语句的set字句中是根据传入的值决定的, 此时可以通过Mybatis提供的标签实现判断动态拼接up ...

  7. 完成对数据库的CRUD操作

    PS:查询相对复杂,要处理结果集,增删改则不用. package it.cast.jdbc; import java.sql.Connection; import java.sql.ResultSet ...

  8. Mybatis框架基础入门(三)--Mapper动态代理方式开发

    使用MyBatis开发Dao,通常有两个方法,即原始Dao开发方法和Mapper动态代理开发方法. 原始Dao开发方法需要程序员编写Dao接口和Dao实现类,此方式开发Dao,存在以下问题: Dao方 ...

  9. MyBatis 框架笔记

    Mybatis 框架笔记   ------技术源于热爱! 获取更多内容请关注小编的个人微信公众平台 1       Mybatis入门 1.1     单独使用jdbc编程问题总结 1.1.1  jd ...

随机推荐

  1. role是一个HTML5的属性

    <form role="form"> role是一个HTML5的属性,role="form"告诉辅助设备(如屏幕阅读器)这个元素所扮演的角色是个表单 ...

  2. HTTP 返回码 400

    400(错误请求)服务器不理解请求的语法 404表示页面不存在 返回500表示内部服务出错, 返回301表示资源永久性跳转 HTTP 500 – 内部服务器错误 HTTP 500.100 – 内部服务 ...

  3. UIview需要知道的一些事情:setNeedsDisplay、setNeedsLayout

    UIview需要知道的一些事情:setNeedsDisplay.setNeedsLayout 1.在Mac OS中NSWindow的父类是NSResponder,而在i OS 中UIWindow 的父 ...

  4. Android开发之获取系统所有进程信息。

    最近在做一个app,有一个进程管理模块用于管理系统中正在运行的进程,并且可以关闭进程进行加速手机的功能,基本把它实现了出来.界面的效果都是自己写的,虽然有BUG,但是基本上能满足需求,后期我会改进BU ...

  5. 九度oj-1533 最长上升子序列 (LIS)

    http://ac.jobdu.com/problem.php?pid=1533 题目描述: 给定一个整型数组, 求这个数组的最长严格递增子序列的长度. 譬如序列1 2 2 4 3 的最长严格递增子序 ...

  6. How to use Qt Designed Ui file

    Ui Designed file In Working, we can use Qt Designer to designe UI; Then, use uic -o head.h designe.u ...

  7. 在Linux下访问Windows共享文件夹

    说明 以下操作以Ubuntu为例,大家可以参考. 我在Ubuntu 14.04和16.04都试过了. Windows共享文件夹 如果局域网内有一台Windows主机,将指定文件夹设为共享,就可以在局域 ...

  8. 4.jsp学习

    1.创建 2.命名 3.utf-8防止乱码 5.导出WAR文件

  9. 如何在centos环境下搭建java环境

    在CentOS上安装Java环境:[1]使用yum安装java 现阶段做企业级项目开发一般都采用Java语言.开发的项目需要放在服务器上运行测试,若以CentOS系统为服务器系统,首先要解决就是Cen ...

  10. 我大中华微软MVP中国区人才库(转)

    出处:http://www.genshuixue.com/i-cxy/p/15349735 刘海峰:国内知名微软开源技术网站51Aspx 创始人,十年以上的asp.net从业经验,微软MSDN特约讲师 ...