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. 解决pip安装时的Readtime out问题

    方法一 pip --default-timeout=100 install -U Pillow就可以了方法二 pip install pyinstaller -i https://pypi.douba ...

  2. oracle ROW_NUMBER用法

    Oracle中row_number().rank().dense_rank() 的区别 row_number的用途非常广泛,排序最好用它,它会为查询出来的每一行记录生成一个序号,依次排序且不会重复 使 ...

  3. unity shader tags

    "IgnoreProjector",值为"true"时,表示不接受Projector组件的投影. "ForceNoShadowCasting" ...

  4. python爬虫如何POST request payload形式的请求

    python爬虫如何POST request payload形式的请求1. 背景最近在爬取某个站点时,发现在POST数据时,使用的数据格式是request payload,有别于之前常见的 POST数 ...

  5. sqlserver datetime的bug?

    sqlserver datetime 的毫秒的个位似乎存在bug,只有0.3.7这三个值,比如: 2018-01-20 23:59:59:999会变成2018-01-21 00:00:00.000 2 ...

  6. 安装python-empy

    sudo python setup.py install

  7. java 对象直接序列化

    序列化类,加字段后, 使用该类从现有文件反序列化时,以前字段可以正常读出 但是反序列化后,那些未对应字段会被设置成null ,即使在类的定义种已设置了初始值 --------------------- ...

  8. cpuinfo

    在Linux系统中,如何详细了解CPU的信息呢? 当然是通过cat /proc/cpuinfo来检查了,但是比如几个物理CPU/几核/几线程,这些问题怎么确定呢? 经过查看,我的开发机器是1个物理CP ...

  9. 图解利用Word来发布博客

    目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...

  10. Redis-3.2.0集群配置(redis cluster)

    版本:redis-3.0.5 redis-3.2.0  redis-3.2.9  redis-4.0.11 参考:http://redis.io/topics/cluster-tutorial. 目录 ...