Mybatis 单表增删改查

Mybatis 单表增删改查

1.先看下资源结构

在这里插入图片描述2.导入jar包
在这里插入图片描述3.创建好数据库
在这里插入图片描述4.书写实体类文件(接下来我将把我的全部代码粘过来方便查看)
---------------------------分割线----------------------------
pojo包下的
Studen类:

package com.baidu.pojo;

public class Student {

	private Integer id;
	private String name;
	private Integer 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 Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public Student(Integer id, String name, Integer age) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
	}
	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}
	@Override
	public String toString() {
		return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
	}
	
	
	
	
}

mapper包下的
StudentMapper.java接口类:

package com.baidu.mapper;

import java.util.List;

import com.baidu.pojo.Student;

public interface StudentMapper {

	//根据id 查询单条语句
	Student findStudentById(Integer id);
	
	//查询全部
	
	List<Student> findList();
	
	
	//更新语句
	
	void findStudentUpdate(Student student);
	
	//添加语句
	void findStudentAdd(Student student);
	
	//删除语句
	
	void findStudentDelete(Integer id);
	
	//使用别名查询
	
	Student findByIdMap(Integer id);
	
	
	//模糊查询
	
	List<Student> findListMoHu(String string);
	
	
	//sql片段查询
	
	List<Student> findListDyan(Student student);
	
	
	
	
}

mapper包下的
StudentMapper.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.baidu.mapper.StudentMapper">
	
	<!-- 查询单条 -->
	<select id="findStudentById" parameterType="int" resultType="student"> 
	
		select * from student where id=#{id}
	
	</select>
	
	<!-- 查询全部 -->
	<select id="findList" resultType="student">
	
		select *from student
	</select>
	
	<!-- 更新语句 -->
	<update id="findStudentUpdate" parameterType="student">
		
		update student set name=#{name},age=#{age} where id=#{id}
	
	</update>
	<!-- 添加语句 -->
	<!-- 获取数据库设置的主键的两种方式
		1.useGeneratedKeys="true" keyProperty="id"  在 insert标签中
		2.可以针对不同的数据库
	 -->
	
	<insert id="findStudentAdd" parameterType="Student" >
	
		<selectKey keyProperty="id" resultType="int" order="AFTER">
		
			select LAST_INSERT_ID()
		</selectKey>
	
		insert into student set name=#{name},age=#{age}
	</insert>
	
	<!-- 删除语句 -->
	<delete id="findStudentDelete" parameterType="int" >
		
		delete from student where id=#{id}
	
	</delete>
	
	<!-- 使用别名查询 -->
	
	<!-- 配置别名 -->
	<resultMap type="Student" id="findByIdDefMap">
		<!-- 主键映射 -->
		<id column="i" property="id"/>
		<!-- 普通属性映射 -->
		<result column="n" property="name"/>
		<result column="a" property="age"/>
	</resultMap>
	
	<select id="findByIdMap" parameterType="int" resultMap="findByIdDefMap">
	
		select id i,name n,age a from student where id=#{id}
	
	</select>
	
	
	<!-- 模糊查询 -->

	<select id="findListMoHu" parameterType="String" resultType="student">
		
		<!-- 	select * from student where name like '%${value}%' -->
	select * from student where name like #{name}
	
	</select>
	
	
	<!-- sql 片段查询 -->
	<!-- 创建sql片段 -->
	
	<sql id="sqlpianduan">
		<if test="id !=null">
				
				and id=#{id}
			</if>
		<if test="name !=null">
				
				and name=#{name}
			</if>
	
	
	</sql>
	
	<select id="findListDyan" parameterType="student" resultType="student">
		
		select * from student
		
		<!-- 自动去除第一个and -->
		<where>
		
			<include refid="sqlpianduan"></include>
		
		</where>
	 
	</select>
	

</mapper>

Config包下的核心配置:

<?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>
	<!-- 默认加载jdbc文件 -->
	<properties resource="jdbc.properties">
	
	</properties>
	
	<!-- 定义输入输出别名 -->
	<typeAliases>
		
		<package name="com.baidu.pojo"/>
	
	</typeAliases>
	
	<!-- 数据库和事务配置 -->
	<environments default="development">
		<environment id="development">
			<!-- 配置事务 -->
			<transactionManager type="JDBC"/>
			<!-- 数据库连接池-->
			<dataSource type="POOLED">
				<property name="driver" value="${jdbc.driver}"/>
				<property name="url" value="${jdbc.url}"/>
				<property name="username" value="${jdbc.username}"/>
				<property name="password" value="${jdbc.password}"/>
			</dataSource>

		</environment>
	
	
	</environments>

	<!-- mapper 映射文件 -->
	<mappers>
	
		<package name="com.baidu.mapper"/>
	</mappers>
	
	
</configuration>

测试类:

package com.baidu.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

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.Test;

import com.baidu.mapper.StudentMapper;
import com.baidu.pojo.Student;

public class Test1 {

	@Test
	//查询单条语句
	public void test1() throws Exception {
		//加载核心配置文件
		
		InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
		
		//获取session工厂
		SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		
		//获取session
		SqlSession session = sessionFactory.openSession();
		
		//执行sql
		StudentMapper studentMapper = session.getMapper(StudentMapper.class);
		Student student = studentMapper.findStudentById(2);
		System.out.println(student);
		
		//关闭资源
		session.close();

	}
	
	@Test
	//查询全部语句
	public void test2() throws Exception {
		//加载核心配置文件
		
		InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
		
		//获取session工厂
		SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		
		//获取session
		SqlSession session = sessionFactory.openSession();
		
		//执行sql
		StudentMapper studentMapper = session.getMapper(StudentMapper.class);
		List<Student> list = studentMapper.findList();
		
		for (Student student : list) {
			System.out.println(student);
		}
		
		
		//关闭资源
		session.close();

	}
	
	@Test
	//更新语句
	public void test3() throws Exception {
		//加载核心配置文件
		
		InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
		
		//获取session工厂
		SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		
		//获取session
		SqlSession session = sessionFactory.openSession();
		
		//执行sql
		StudentMapper studentMapper = session.getMapper(StudentMapper.class);
		Student student = new Student(1,"佛爷",222);
		
		studentMapper.findStudentUpdate(student);
		
		//提交事务
		session.commit();
		
		
		//关闭资源
		session.close();

	}
	@Test
	//添加语句
	public void test4() throws Exception {
		//加载核心配置文件
		
		InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
		
		//获取session工厂
		SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		
		//获取session
		SqlSession session = sessionFactory.openSession();
		
		//执行sql
		StudentMapper studentMapper = session.getMapper(StudentMapper.class);
		
		Student student = new Student(null,"王胖子",66778);
		
		studentMapper.findStudentAdd(student);
		
		
		
		//提交事务
		session.commit();
		//打印出主键
		System.out.println(student.getId());
		
		
		//关闭资源
		session.close();

	}
	
	@Test
	//删除语句
	public void test5() throws Exception {
		//加载核心配置文件
		InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
		
		//获取session工厂
		SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		
		//获取session
		SqlSession session = sessionFactory.openSession();
		
		//执行sql
		StudentMapper studentMapper = session.getMapper(StudentMapper.class);
		studentMapper.findStudentDelete(7);
		
		//提交事务
		session.commit();
		
		//关闭资源
		session.close();
		
	}
	
	@Test
	//通过别名查询语句
	public void test6() throws Exception {
		//加载核心配置文件
		InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
		
		//获取session工厂
		SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		
		//获取session
		SqlSession session = sessionFactory.openSession();
		
		//执行sql
		StudentMapper studentMapper = session.getMapper(StudentMapper.class);
		Student student = studentMapper.findByIdMap(1);
		System.out.println(student);
		
		//提交事务
		//session.commit();
		
		//关闭资源
		session.close();
		
	}
	
	@Test
	//模糊查询
	public void test7() throws Exception {
		//加载核心配置文件
		InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
		
		//获取session工厂
		SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		
		//获取session
		SqlSession session = sessionFactory.openSession();
		
		//执行sql
		StudentMapper studentMapper = session.getMapper(StudentMapper.class);
		//List<Student> list = studentMapper.findListMoHu("王");//使用${value}传值
		List<Student> list = studentMapper.findListMoHu("%王%");
		
		System.out.println(list);
		
		//提交事务
		//session.commit();
		
		//关闭资源
		session.close();
		
	}
	
	@Test
	//sql片段查询
	public void test8() throws Exception {
		//加载核心配置文件
		InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
		
		//获取session工厂
		SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		
		//获取session
		SqlSession session = sessionFactory.openSession();
		
		//执行sql
		StudentMapper studentMapper = session.getMapper(StudentMapper.class);
		List<Student> list = studentMapper.findListDyan(new Student(1,"佛爷",null));
		
		System.out.println(list);
		
		//提交事务
		//session.commit();
		
		//关闭资源
		session.close();
		
	}
}

其他类:
在这里插入图片描述

基本就是这样 仅供小白学习

猜你喜欢

转载自blog.csdn.net/xxk666/article/details/83512428