博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二、Mybatis增、删、改、查基于XML和注解
阅读量:4073 次
发布时间:2019-05-25

本文共 5851 字,大约阅读时间需要 19 分钟。

文件结构

Paste_Image.png

2.1基于XML的增、删、改、查

2.1.1定义sql映射文件

insert into user(name,age) values(#{name},#{age})
delete from user where id=#{id}
update user set name=#{name},age=#{age} where id=#{id}

2.1.2在config.xml文件中注册这个映射文件

2.1.3定义一个MybatisUtil类,主要用于获取SqlSession

package com.util;import java.io.IOException;import java.io.Reader;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class MybatisUtil {    public static SqlSession getSession() throws IOException    {        String resource = "config.xml";        //加载 mybatis 的配置文件(它也加载关联的映射文件)        Reader reader = Resources.getResourceAsReader(resource);        //构建 sqlSession 的工厂        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);        //openSession的参数设置为true表示自动提交        SqlSession session=sessionFactory.openSession(true);        return session;    }}

2.1.4定义相应的测试方法

package com.test;import java.io.IOException;import java.io.Reader;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.entity.User;import com.util.MybatisUtil;public class Test1 {
@Test public void getUser() throws IOException { String resource = "config.xml"; //加载 mybatis 的配置文件(它也加载关联的映射文件) Reader reader = Resources.getResourceAsReader(resource); //构建 sqlSession 的工厂 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); //创建能执行映射文件中 sql 的 sqlSession SqlSession session = sessionFactory.openSession(); //映射 sql 的标识字符串 String statement = "com.config.userMapper.getUser"; //执行查询返回一个唯一 user 对象的 sql User user = session.selectOne(statement, 15); session.close(); System.out.println(user); } //测试插入 @Test public void addUser() throws IOException { SqlSession session=MybatisUtil.getSession(); String statement="com.config.userMapper.addUser"; //insert表示有几天记录发生了变化 int insert=session.insert(statement, new User(-1,"王五",29)); session.close(); System.out.println(insert); } //测试删除 @Test public void deleteUser() throws IOException { SqlSession session=MybatisUtil.getSession(); String statement="com.config.userMapper.deleteUser"; int delete=session.delete(statement, 15); session.close(); System.out.println(delete); } //测试更新 @Test public void updateUser() throws IOException { SqlSession session=MybatisUtil.getSession(); String statement="com.config.userMapper.updateUser"; int update=session.update(statement, new User(16,"马六",34)); session.close(); System.out.println(update); } //测试获得整个表 @Test public void getAllUsers() throws IOException { SqlSession session=MybatisUtil.getSession(); String statement="com.config.userMapper.getAllUsers"; List
list=session.selectList(statement); for(User user:list) { System.out.println(user); } session.close(); }}

2.2基于注解的增、删、改、查

2.2.1定义sql映射接口

package com.inter;import java.util.List;import org.apache.ibatis.annotations.Delete;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.annotations.Select;import org.apache.ibatis.annotations.Update;import com.entity.User;public interface UserMapper {
@Insert("insert into user(name,age) values(#{name},#{age})") public int add(User user); @Delete("delete from user where id=#{id}") public int deleteById(int id); @Update("update user set name=#{name},age=#{age} where id=#{id}") public int update(User user); @Select("select * from user where id=#{id}") public User getById(int id); @Select("select * from user") public List
getAll();}

2.2.2在config.xml中注册这个映射接口

2.2.3编写测试方法

package com.test;import java.io.IOException;import java.util.List;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.junit.Test;import com.entity.User;import com.inter.UserMapper;import com.util.MybatisUtil;public class Test2 {    //测试添加    @Test    public void testAdd() throws IOException    {        SqlSession session=MybatisUtil.getSession();        UserMapper mapper=session.getMapper(UserMapper.class);        int add=mapper.add(new User(-1,"王五",12));        session.close();        System.out.println(add);    }    //测试删除    @Test    public void testDelete() throws IOException    {        SqlSession session=MybatisUtil.getSession();        UserMapper mapper=session.getMapper(UserMapper.class);        int delete=mapper.deleteById(17);        session.close();        System.out.println(delete);    }    //测试更新    @Test    public void testUpdate() throws IOException    {        SqlSession session=MybatisUtil.getSession();        UserMapper mapper=session.getMapper(UserMapper.class);        int update=mapper.update(new User(16,"王五",17));        session.close();        System.out.println(update);    }    //测试查询    @Test    public void testGetUsers() throws IOException    {        SqlSession session=MybatisUtil.getSession();        UserMapper mapper=session.getMapper(UserMapper.class);        List
list=mapper.getAll(); for(User user:list) { System.out.println(user); } session.close(); }}

转载地址:http://tfkni.baihongyu.com/

你可能感兴趣的文章
简单理解Socket及TCP/IP、Http、Socket的区别
查看>>
利用HTTP Cache来优化网站
查看>>
利用负载均衡优化和加速HTTP应用
查看>>
消息队列设计精要
查看>>
分布式存储系统设计(1)—— 系统架构
查看>>
MySQL数据库的高可用方案总结
查看>>
常用排序算法总结(一) 比较算法总结
查看>>
SSH原理与运用
查看>>
SIGN UP BEC2
查看>>
S3C2440中对LED驱动电路的理解
查看>>
《天亮了》韩红
查看>>
Windows CE下USB摄像头驱动开发(以OV511为例,附带全部源代码以及讲解) [转]
查看>>
出现( linker command failed with exit code 1)错误总结
查看>>
iOS开发中一些常见的并行处理
查看>>
iOS获取手机的Mac地址
查看>>
ios7.1发布企业证书测试包的问题
查看>>
如何自定义iOS中的控件
查看>>
iOS 开发百问
查看>>
Mac环境下svn的使用
查看>>
github简单使用教程
查看>>