编写增删查改测试程序
package com.janson.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
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.janson.pojo.User;
public class MybatisDemoTest {
//查找用户
@Test
public void findByIdTest() throws Exception {
String resource = "sqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
//创建sqlsessoionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//创建sqlsession
SqlSession session = sqlSessionFactory.openSession();
User user = session.selectOne("user.findById", 1);
System.out.println(user);
}
//根据用户名来查找查找用户
@Test
public void findByNameTest() throws Exception {
//加载配置文件
String resource = "sqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
//创建sqlsessoionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//创建sqlsession
SqlSession session = sqlSessionFactory.openSession();
List<User> list = session.selectList("findUserByName", "janson");
for (User user : list) {
System.out.println(user);
}
}
//添加用户
@Test
public void insertUserTest() throws Exception {
//加载配置文件
String resource = "sqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
//创建sqlsessoionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//创建sqlsession
SqlSession session = sqlSessionFactory.openSession();
User user = new User();
user.setAddress("111");
user.setUsername("linjanson");
user.setSex("男");
user.setBirthday(new Date());
int insert = session.insert("user.insertUser", user);
session.commit();//需要自己手动提交一下
System.out.println(user.getId());
}
//修改用户
@Test
public void updateUserTest() throws Exception {
//加载配置文件
String resource = "sqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
//创建sqlsessoionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//创建sqlsession
SqlSession session = sqlSessionFactory.openSession();
User user = new User();
user.setId(27);
user.setAddress("22222");
user.setUsername("jansonlin");
user.setSex("男");
user.setBirthday(new Date());
int update = session.update("user.updateUser", user);
session.commit();//需要自己手动提交一下
System.out.println(user.getId());
}
//删除用户
@Test
public void deleteUserTest() throws Exception {
//加载配置文件
String resource = "sqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
//创建sqlsessoionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//创建sqlsession
SqlSession session = sqlSessionFactory.openSession();
int delete = session.delete("user.deleteUser", 27);//删除刚刚添加的用户
session.commit();//需要自己手动提交一下
}
}
编写映射文件
<?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:命名空间,用于隔离sql,还有一个很重要的作用,后面会讲 -->
<mapper namespace="user">
<!-- 查找用户 -->
<!--
属性:
id:声明的唯一标识
paramterType:传入参数类型
resultType:返回值的类型
-->
<select id="findById" parameterType="Integer" resultType="com.janson.pojo.User">
select * from user where id=#{v}
</select>
<!-- 通过名字模糊搜索用户 -->
<select id="findUserByName" parameterType="String" resultType="com.janson.pojo.User">
select * from user where username like "%"#{v}"%"
</select>
<!-- 添加用户 -->
<insert id="insertUser" parameterType="com.janson.pojo.User">
<selectKey keyProperty="id" resultType="Integer" order="AFTER">
<!-- 这里是查找出最新插入数据库中的一ID值 -->
select LAST_INSERT_ID()
</selectKey>
insert into user(username,sex,birthday,address) values(#{username},#{sex},#{birthday},#{address})
</insert>
<!-- 修改用户 -->
<update id="updateUser" parameterType="com.janson.pojo.User">
update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} where id=#{id}
</update>
<!-- 删除用户 -->
<delete id="deleteUser" parameterType="Integer">
delete from user where id = #{id}
</delete>
</mapper>
运行结果
findByIdTest
findByNameTest
insertUserTest
deleteUserTest