package com.lzw.domain;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private int id;//ID
private String name;//姓名
private String hobby;//兴趣
private String motto;//签名
}
④创建接口
package com.lzw.mappers;import java.util.List;import com.lzw.domain.User;
public interface UserMapper {
//添加
public int add(User user);
//删除
public int delete(int id);
//修改
public int update(User user);
//全查询
public List<User> selectAll();}
⑤配置UserMapper.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.lzw.mappers.UserMapper"><!-- 接口的物理路径(包名+接口名) --><!-- id对应的是接口中的方法名(一定要对应,否则动态代理找不到调用的方法) parameterType="User"对应add方法的参数类型,同时也是MyBatis-Config.xml中取的实体别名
useGeneratedKeys="true"表示主键自增 keyProperty="id" 主键对应的是com.hp.domain.User类中id属性 --><!-- 添加 --><insert id="add" parameterType="User" useGeneratedKeys="true"
keyProperty="id">
insert into user values(null,#{name},#{hobby},#{motto})</insert><!-- 删除 --><delete id="delete" parameterType="java.lang.Integer">
delete from user where id=#{id}</delete><!-- 修改 --><update id="update" parameterType="User">
update user set
name=#{name},hobby=#{hobby},motto=#{motto} where id=#{id}</update><!-- 全查询
resultType表示返回的结果类型(要求pojo中的字段名和表中字段完全对应)
resultMap 表示返回结果类型(不要求pojo中的字段名和表中对应,可以自行指定对应关系)
javaType 表示返回结果类型(指定是java属性类型,例如String, java.lang.String) --><select id="selectAll" resultType="com.lzw.domain.User">select * from user
</select><!-- 根据ID查询 --><select id="findbyId" parameterType="java.lang.Integer" resultType="User">select * from user where id=#{id}</select></mapper>
⑥创建测试类
package com.lzw.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.After;import org.junit.Before;import org.junit.Test;import com.lzw.domain.User;
public class JunitTest {
SqlSession session=null;
@Before
public void before() throws IOException
{
//读取配置文件然后解析
InputStream config = Resources.getResourceAsStream("MyBatis-Config.xml");
//根据解析配置文件就会创建出一个SqlSessionFactory(工厂对象)
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(config);
//打开session
session = factory.openSession();//生产一个sqlSession
System.out.println(session);}
@After
public void after(){
session.commit();//提交
session.close();//关闭
}
//测试添加
@Test
public void testAdd(){
User user = new User(0,"宝儿姐","看小电影","悲欢自渡,他人难悟");
//mybatis受影响行数
int i = session.insert("com.lzw.mappers.UserMapper.add",user);
System.out.println(i);}
//测试删除
@Test
public void testDelete(){
int i = session.delete("com.lzw.mappers.UserMapper.delete",9);
System.out.println(i);}
//测试修改
@Test
public void testUpdate(){
User user = new User();
user.setMotto("必须让你有遗憾这样你才会重返这个世界。");
user.setName("大冰");
user.setHobby("冰壶");
user.setId(5);
int i = session.update("com.lzw.mappers.UserMapper.update",user);
System.out.println(i);}
//测试全查询
@Test
public void testSelectAll(){
List<User> list = session.selectList("com.lzw.mappers.UserMapper.selectAll");for(User user : list){
System.out.println(user);}}
//根据ID查询
@Test
public void testFindbyId(){
User user = session.selectOne("com.lzw.mappers.UserMapper.findbyId",8);
System.out.println(user);}}