博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第一个MyBatis程序
阅读量:4985 次
发布时间:2019-06-12

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

最近研究了一些MyBatis技术,虽然工作中还未用到,但是觉得了解一下也是不错的.这里记录了第一个简单的Demo程序,防止自己忘记.

第一步需要配置Mybatis-config.xml文件.注意:这里使用了2种方式对实体类进行了映射.在<Mapper>中,第一个User对象用XMl格式进行映射,第二个Category用注解CategoryMappper格式进行映射.

第二步对mybatis-config.xml进行解析

public class MyBatisUtil {    private static SqlSessionFactory factory;    static{        try {            InputStream in = Resources.class.getResourceAsStream("mybatis-config.xml");            factory = new SqlSessionFactoryBuilder().build(in);        } catch (Exception e) {            e.printStackTrace();        }    }        public static SqlSession createSession(){        return factory.openSession();    }        public static void closeSession(SqlSession session){        if (session != null) {            session.close();        }    }}

下面分2中方式,对xml格式和注解方式分别进行介绍:

XML格式:

1.1.创建实体类User(这里省略了get和set方法)

public class User {    private int id;    private String username;    private String password;    private String nickname;    private int type;    private List
addresses; ...}

1.2.创建User对象的xml映射文件.这里需要注意:namespace属性,需要配置User类的全路径.定义了一个id为add的Insert操作.其参数类型(parameterType)为一个User对象

insert t_user(id,username,password,nickname,type) values(#{id},#{username},#{password},#{nickname},#{type})

1.3.对XML映射方式进行测试

@Test    public void testAdd() {        // 1.创建Mybatis配置文件输入流        InputStream in = null;        try {            in = Resources.getResourceAsStream("mybatis-config.xml");        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        // 2.创建SqlSessionFactory        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);        // 3.创建SQlSession        SqlSession session = factory.openSession();        // 4.调用UserMapper文件,将对象插入数据库(在调用文件之前,需要将mapper文件加入到mybatis-config.xml中)        User user = new User();        user.setId(8);        user.setUsername("张飞");        user.setPassword("123");        user.setNickname("张三");        user.setType(1);        session.insert("com.mybatis02.model.User.add", user);        session.commit();        session.close();    }

对注解映射方式进行demo的编写.

2.1.同样创建实体类

public class Category {    private int id;    private String name;        public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}

2.2 创建CategoryMapper映射类 创建了一个add方法,在方法上添加Insert操作,执行对应的sql.

这个文件在第一步中的mybatis-config.xml中引入.

public interface CategoryMapper {    @Insert("insert into t_category(id,name) value (#{id},#{name})")    public void add(Category category);    }

2.3 测试

@Test    public void testCategory() {        // 1.创建Mybatis配置文件输入流        InputStream in = null;        try {            in = Resources.getResourceAsStream("mybatis-config.xml");        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        // 2.创建SqlSessionFactory        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);        // 3.创建SQlSession        SqlSession session = factory.openSession();        // 4.调用CategoryMapper接口,将对象插入数据库(在调用文件之前,需要将mapper文件加入到mybatis-config.xml中)        Category category = new Category();        category.setId(1);        category.setName("衣服");        session.insert("com.mybatis02.mapper.CategoryMapper.add", category);        session.commit();        session.close();    }

感触:最开始写demo,报了一个错误,原来我把xml方式映射和注解方式映射弄混了.两种方式各取一半,报了各种错误.

      以后遇到问题,需要一步一步的推敲.保持逻辑的清晰,才能更加准确的定位错误,及时发现和修正错误.

转载于:https://www.cnblogs.com/Cilimer/p/3911560.html

你可能感兴趣的文章
GitLab备份与恢复
查看>>
20155307《网络对抗》免杀原理与实践
查看>>
《Android开发卷——自定义日期选择器(三)》
查看>>
Moving Acerage
查看>>
自己以前写的函数(总结一下,都是学习Unix高级编成练手的)
查看>>
阿里毕玄:技术人应如何选择职业发展路线?
查看>>
MySQL基本操作
查看>>
axios取消请求的实践记录分享
查看>>
那海蓝蓝 微博
查看>>
蓄水池算法(Reservoir Sampling)
查看>>
游里工夫独造微一一小平邦彦传
查看>>
HTML5 JSON ( tuple => Object => JSON => Object=> Elements_of_tuple )
查看>>
#2006 - MySQL server has gone away 问题解决方法 (全) (转)
查看>>
php学习笔记4--php中的变量作用域
查看>>
D1格式是720*576还是704*576 分类: 生活百科 ...
查看>>
V4L2驱动的移植与应用(三) 分类: arm-linux-Ubunt...
查看>>
服务级后门自己做——创建服务 分类: VC++ ...
查看>>
push本地代码到github发生错误的解决办法
查看>>
设置遮罩层
查看>>
Catalyst 3850 升级-1
查看>>