第一个MyBatis程序

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

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

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <properties resource="jdbc.properties" ></properties>
    <!-- <typeAliases>
        <package name="com.mybatis02.model"/>
    </typeAliases> -->
    <environments default="devEnvironment">
        <environment id="devEnvironment">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${dirver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!-- 利用XML格式对User对象进行映射 -->
        <mapper resource="com/mybatis02/model/User.xml"/>
        <!-- 用注解模式对Category进行映射 -->
        <mapper class="com.mybatis02.mapper.CategoryMapper"/>
    </mappers>
</configuration>

第二步对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<Address> addresses;
    ...
}

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

<?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.mybatis02.model.User">
    <insert id="add" parameterType="com.mybatis02.model.User">
        insert t_user(id,username,password,nickname,type)
        values(#{id},#{username},#{password},#{nickname},#{type})
    </insert>
</mapper>

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中引入.

 <mapper class="com.mybatis02.mapper.CategoryMapper"/>
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方式映射和注解方式映射弄混了.两种方式各取一半,报了各种错误.

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

第一个MyBatis程序

时间: 2024-11-10 07:18:07

第一个MyBatis程序的相关文章

第一个MyBatis程序(博客初写者)

第一个Mybatis程序 一.环境: 1.JDK1.8 2.MYSQL5.7 3.IDEA 4.MAVEN 3.63 二.Mybatis认识: 1.查看官方文档 https://mybatis.org/mybatis-3/zh/index.html 2.查看百度百科 https://baike.so.com/doc/5582692-5795562.html MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设

mybatis之第一个mybatis程序(二)

通过接口编程来实现mybatis之第一个mybatis程序(一)中的功能. 1.在src下新建一个com,gong,mybatis.dao的包,在里面新建一个EmployeeDao.java(注意是接口) package com.gong.mybatis.dao; import com.gong.mybatis.bean.Employee; public interface EmployeeDao { public Employee getEmpById(Integer id); } 2.更改E

2.第一个MyBatis程序

1.导入jar包 2.定义实体类 3.创建对应的表 4.定义Dao接口 1 public interface StudentDAO { 2 public void saveStudent(Student s); 3 } 5.定义映射文件 映射文件,简称为mapper,主要完成Dao层中SQL语句的映射.具体映射的配置,后面会详细讲解 映射文件名随意,一般放在 dao 包中,最好和Dao名称保持一致,我们这里写成mapper.xml 这个mapper.xml 文件的约束文件可以从 官方文档找到,

在 idea 下搭建的第一个MyBatis项目及增删改查用法

Mybatis搭建第一个项目 1. 简介 1.1 什么是 MyBatis? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型.接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录. 如何获取Mybatis? GitHub 源码:https://gith

mybatis 的第一个 HelloWorld 程序学习

1.准备工作: a.在 MYSQL 中新建一个 mybatis 数据库,并且创建一个 table,在这个表格中录入一条记录. 注:我使用的是 SQLyog,你们也可以使用命令行直接创建库和表. 2.在 eclipse 中创建一个 java 工程: - 创建一个名为 Employee 的 bean 类,并且在这个工程的路径下创建一个 lib 文件夹,用于存放需要的 jar 包. (需要的 jar 包为 mybatis-3.4.1.jar .mysql-connector-java-5.1.37-b

当世界上只剩下一个Java程序员

公元2050年,世界上只剩下了一个Java程序员. 你可能要问了,别的人都去哪儿了?原因很简单, Java没落了. 大约在2030年左右,出现了一个叫做X的语言,它既能做系统级开发(操作系统.数据库.编译器),也能做服务器端的开发,手机端,Web端都不在话下. 更为重要的是,这个新的编程语言和人类的自然语言很接近,无论大人小孩,稍微一学,很快就可以来编程.于是排名前100的语言统统消失了, 程序员们都失业了. Java也不例外,这个昔日的霸主在留下了一堆庞大而复杂的系统以后就不见了. Java程

【Mybatis】Mybatis入门概述及第一个Mybatis实例实现增删改查

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 一.简介 1.什么是MyBatis MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索.MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录.(类似

攻城狮在路上(壹) Hibernate(二)--- 第一个hibernate程序

1.直接通过JDBC API持久化实体域对象: A.java.sql常用接口和类: DriverManager:驱动程序管理器,负责创建数据库连接. Connection:代表数据库连接. Statement:负责执行SQL语句. PreparedStatement:负责执行SQL语句,具有预定义SQL语句的功能. ResultSet:代码SQL查询语句的查询结果集. 2.常用的ORM中间件: Hibernate\Mybatis\Toplink\Torque\ObjectRelationBrid

一个JAVA程序员成长之路分享

我搞JAVA也有些日子了, 因为我比较贪玩,上进心不那么强, 总是逼不得已为了高薪跳槽才去学习, 所以也没混成什么大牛, 但好在现在也已经成家立业, 小日子过的还算滋润, 起码顶得住一月近万元的吃喝拉撒玩各种贷款信用卡 不为金钱过于发愁了. 我特别感谢当初贴吧遇见的那位大神, 虽然每个月也就聊那么几句, 但是他总能在我不知道该学啥, 该怎么走的时候, 给我方向, 毫不夸张的说,我现在的衣食无忧, 技术马马虎虎, 都是拜他所赐. 所以 我也想分享一些自己的成长过程 以及技术路线 希望一些迷茫的新人