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();
} }

 

最新文章

  1. 网络编程(一):用C#下载网络文件的2种方法
  2. 当findById(Integer id)变成String类型
  3. 我的PhoneGap安装配置经历
  4. 3D touch 环境配置
  5. mysql开启general log的方法
  6. CSS 总结
  7. JavaWeb核心编程之(四.1)JSP
  8. 用批处理文件删除n天前的文件
  9. PAT (Advanced Level) 1007. Maximum Subsequence Sum (25)
  10. Linux网络编程--wireshark分析TCP包头的格式
  11. [国嵌攻略][109][Linux系统调用]
  12. 前后端分离djangorestframework——认证组件
  13. 【English】20190320
  14. hMailServer 邮件服务器搭建
  15. solr 入门
  16. phantomjs 了解
  17. 细说logback之简介
  18. PS与AI快捷键小结
  19. uva 1632 Alibaba
  20. Chargen UDP服务远程拒绝服务攻击漏洞修复教程

热门文章

  1. Spring cloud @RefreshScope使用
  2. 【321】python进程监控:psutil
  3. java链接数据库构建sql语句的时候容易记混的地方
  4. 多线程中,ResultSet为空,报错空指针
  5. nasm 与 masm语法区别
  6. Python3 sorted() 函数
  7. IoC和DI的区别
  8. 无生物学重复RNA-seq分析 CORNAS: coverage-dependent RNA-Seq analysis of gene expression data without biological replicates
  9. 中介者模式c#(媒婆版)
  10. ScreenCapture手动卸载教程-Xproer.ScreenCapture