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();
}
}
其他类:
基本就是这样 仅供小白学习