mybatis映射文件概述
mybatis的插入操作
<!--插入
parameterType:插入的值的限定类型
这里的占位符使用#{},大括号中用字段名,如下所示
-->
<insert id="save" parameterType="com.itheima.domain.User">
insert into user values(#{id},#{username},#{password})
</insert>
package com.itheima.test;
import com.itheima.domain.User;
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 java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class demo {
@Test
public void test2() throws IOException {
//模拟User对象
User user = new User();
user.setUsername("Tom");
user.setPassword("abc");
//获得核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
//获得session工厂对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
//获得session会话对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//执行操作 参数:namespace + id
sqlSession.insert("userMapper.save",user);
//mybatis执行更新操作都是默认事务不提交,所以我们需要手动提交
sqlSession.commit();
//释放资源
sqlSession.close();
}
}
运行效果,可以看见数据库中已出现Tom:
注意问题:
更新操作
<!--修改-->
<update id="update" parameterType="com.itheima.domain.User">
update user set username=#{username},password=#{password} where id = #{id}
</update>
package com.itheima.test;
import com.itheima.domain.User;
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 java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class demo {
@Test
public void test3() throws IOException {
//模拟User对象
User user = new User();
user.setId(4);
user.setUsername("dang");
user.setPassword("hh");
//获得核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
//获得session工厂对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
//获得session会话对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//执行操作 参数:namespace + id
sqlSession.update("userMapper.update",user);
//mybatis执行更新操作都是默认事务不提交,所以我们需要手动提交
sqlSession.commit();
//释放资源
sqlSession.close();
}
}
运行效果:
更新之后:
注意问题:
删除操作
<!--删除
因为我们只需要一个参数id是integer类型的,所以我们parameterType只需要一个integer类型的对象就行了
-->
<delete id="delete" parameterType="java.lang.Integer">
delete from user where id = #{id}
</delete>
package com.itheima.test;
import com.itheima.domain.User;
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 java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class demo {
@Test
public void test4() throws IOException {
//获得核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
//获得session工厂对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
//获得session会话对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//执行操作 参数:namespace + id
sqlSession.delete("userMapper.delete",2);
//mybatis执行更新操作都是默认事务不提交,所以我们需要手动提交
sqlSession.commit();
//释放资源
sqlSession.close();
}
}
运行后可看到,id为2的数据已经被删除了。
注意问题: