zoukankan      html  css  js  c++  java
  • Mybatis 快速入门(注解方式)

    导读

      注解开发的方式只需要程序员开发Mapper接口即可,不需要编写映射文件(XML)。

    环境搭建

    项目结构

    SqlMapConfig.xml

    <!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <!-- 引入外部配置文件 -->
        <properties resource="db.properties"></properties>
        <!-- 数据库链接相关 -->
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC" />
                <dataSource type="POOLED">
                    <property name="driver" value="${db.driver}" />
                    <property name="url" value="${db.url}" />
                    <property name="username" value="${db.username}" />
                    <property name="password" value="${db.password}" />
                </dataSource>
            </environment>
        </environments>
        <mappers>
            <!-- 添加单个接口 -->
            <!-- <mapper class="com.cyb.anno.AnnotationDeptMapper" /> -->
            <!-- 批量添加 -->
           <package name="com.cyb.anno"/>
        </mappers>
    </configuration>

    db.properties

    db.driver=com.mysql.jdbc.Driver
    db.url=jdbc:mysql://127.0.0.1:3306/cyb
    db.username=root
    db.password=root

    Dept.java

    package com.cyb.po;
    
    public class Dept {
        private int id;
        private String name;
        private int sex;
        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;
        }
        public int getSex() {
            return sex;
        }
        public void setSex(int sex) {
            this.sex = sex;
        }
        @Override
        public String toString() {
            return "Dept [id=" + id + ", name=" + name + ", sex=" + sex + "]";
        }
    }

    AnnotationDeptMapper.java(接口)

    package com.cyb.anno;
    
    import java.util.List;
    import org.apache.ibatis.annotations.Select;
    
    import com.cyb.po.Dept;
    
    public interface AnnotationDeptMapper {
        @Select("SELECT * FROM dept WHERE id = #{id}")
        public Dept findDeptById(int id);
    
        @Select("SELECT * FROM dept where name like '%${value}%'")
        public List<Dept> findDeptList(String name);
    }

    TestDept.java

    package com.cyb.test;
    
    import java.io.InputStream;
    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.Before;
    import org.junit.Test;
    import com.cyb.anno.AnnotationDeptMapper;
    import com.cyb.po.Dept;
    
    public class TestDept {
        private SqlSessionFactory sqlSessionFactory;
    
        @Before
        public void init() throws Exception {
            //指定全局配置文件路径
            String resource = "SqlMapConfig.xml";
            //加载资源文件(包括全局文件和映射文件)
            InputStream inputStream = Resources.getResourceAsStream(resource);
            //使用构建者模式创建SqlSessionFactory
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        }
    
        @Test
        public void testSelect() {
            //由SqlSessionFactory工厂去创建SqlSession(会话)
            SqlSession sqlSession = sqlSessionFactory.openSession();
            AnnotationDeptMapper deptMapper = sqlSession.getMapper(AnnotationDeptMapper.class);
            List<Dept> dept=deptMapper.findDeptList("al");
            System.out.println(dept.size());
            //释放资源
            sqlSession.close();
        }
    }

    数据库表结果及数据

    测试

    注解方式

    查询

    测试

    插入

    测试

    插入时主键返回

    测试

    更新

    测试

    删除

    测试

  • 相关阅读:
    数组指针的一个易错点
    jQuery on()方法
    php 前一天或后一天的日期
    用jQuery监听浏览器窗口的变化
    jquery获取json对象中的key小技巧
    JQuery操作元素的属性与样式及位置
    用JQuery操作元素的style属性
    如何删除jsPlumb连接
    jsPlumb.jsAPI阅读笔记(官方文档翻译)
    Jquery empty() remove() detach() 方法的区别
  • 原文地址:https://www.cnblogs.com/chenyanbin/p/12924748.html
Copyright © 2011-2022 走看看