• MyBatis项目创建


    一、开发环境的准备

    总览:

    mybatis搭建过程:
    1、导入jar
    2、创建mybatis的核心(全局)配置文件mybatis-config.xml,并配置
    3、创建映射文件XxxMapper.xml,并配置
    4、创建mapper接口,实现两个绑定:
        (1)接口全限定名要和映射文件的namespace保持一致
        (2)接口中方法名和SQL语句的id保持一致
    5、获取mybatis操作数据库的会话对象SqlSession,通过getMapper()获取接口的动态代理实现类
    6、测试

    详细过程:

      0、STS选择Java视图,新建Java Project.

      1、 导入MyBatis框架的jar包、Mysql驱动包、log4j的jar包
        myBatis-3.4.1.jar
        mysql-connector-java-5.1.37-bin.jar
        log4j.jar
      2、创建mybatis的核心(全局)配置文件mybatis-config.xml,并配置(如何连接数据库,直接由手册中复制粘贴)
    <?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>
        <environments default="development">    <!--environments: 设置连接数据库的环境,default:设置默认使用的数据库环境-->
            <environment id="development">      <!--environment: 设置某个具体的数据库环境,id:数据库环境的唯一标识-->
                <transactionManager type="JDBC" />  <!--之后会采用Spring的事务管理,type:JDBC或者MANAGED,JDBC表示最原始的方式处理事务-->
                <dataSource type="POOLED">          <!--之后会采用druid数据库连接池,此为数据源,POOLED|UNPOOLED|JNDI-->
                    <property name="driver" value="com.mysql.jdbc.Driver" />
                    <property name="url" value="jdbc:mysql://localhost:3306/ssm" />
                    <property name="username" value="root" />
                    <property name="password" value="123456" />
                </dataSource>
            </environment>
        </environments>
      <!--引入映射文件--> <mappers> <mapper resource="UserMapper.xml" /> </mappers> </configuration>
       1)对于properties和一些不常用的设置
    <!-- <properties>
            <property name="jdbc.driver" value="com.mysql.jdbc.Driver"/>
        </properties> -->
        
        <!-- 
            <properties>:设置或引入资源文件
            resource:在类路径下访问资源文件
            url:在网络路径或磁盘路径下访问资源文件
         -->
        <properties resource="jdbc.properties"></properties>
        
        <!-- 将带下划线的变量转化为驼峰形式 user_Name -> userName -->
        <settings>
            <setting name="mapUnderscoreToCamelCase" value="true"/>
        </settings>
        
        <typeAliases>
            <!-- 
                为类型设置类型别名
                type:Java 类型,若只设置type,默认的别名就是类型,且不区分大小写
             -->
            <!-- <typeAlias type="com.atguigu.bean.User" alias="u"/> -->
            <package name="com.atguigu.bean"/>
        </typeAliases>
        

      2)Mybatis的xml配置文件中标签的顺序不能出错

    Content Model : (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, 
     objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?)

      3)xml的提示功能:

        -1)、联网
        -2)、配置:preference->xml->xmlCatalog-->add
        (1)PUBLIC ID:-//mybatis.org//DTD Config 3.0//EN
        (2)URI:http://mybatis.org/dtd/mybatis-3-config.dtd
      3、创建映射文件XxxMapper.xml,并配置(如何操作数据库,写的是SQL语句,处理实体对象Xxx和表关系)
      4、创建mapper接口,实现两个绑定:
         (1)接口全限定名要和映射文件的namespace保持一致
         (2)接口中方法名和SQL语句的id保持一致
      例如:接口UserMapper,和映射文件UserMapper.xml(实现调用接口中的方法就执行相应的SQL语句,并得到返回值
    package com.atguigu.mapper;
    
    import com.atguigu.bean.User;
    
    public interface UserMapper {
    
        User getUserByUid(String uid);
        
    }
    <?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.atguigu.mapper.UserMapper">
        
        <!-- 
            <select>:定义查询语句
            id:设置SQL语句的唯一标示
            resultType:结果类型,即实体类的全限定名
         -->
        <select id="getUserByUid" resultType="com.atguigu.bean.User">
            select uid,user_name,password,age,sex from user where uid = ${value}
        </select>
        
    </mapper>

       5、获取mybatis操作数据库的会话对象SqlSession,通过getMapper()获取接口的动态代理实现类

    package com.atguigu.mapper;
    
    import static org.junit.Assert.*;
    
    import java.io.IOException;
    import java.io.InputStream;
    
    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.atguigu.bean.User;
    
    public class TestMybatis {
    
        @Test
        public void test() throws IOException {
            
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
            SqlSessionFactory sqlSessionFactory = 
                    new SqlSessionFactoryBuilder().build(is);
            SqlSession sqlSession = sqlSessionFactory.openSession();
            //getMapper():会通过动态代理动态生成UserMapper的代理实现类
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            System.out.println(mapper.getClass().getName());
            User user = mapper.getUserByUid("1");
            System.out.println(user);
            //user_name ---> userName
        }
    
    }

      6、测试

  • 相关阅读:
    SQL语法:查询此表有另外一个表没有的数据
    .NET平台开源项目速览-最快的对象映射组件Tiny Mapper之项目实践
    win7 64 安装Oracle 11G 、使用PLSQL进行连接 标准实践
    json 筛选数据 $.grep过滤数据
    bootstrap table 行号 显示行号 添加行号 bootstrap-table 行号
    ajax 请求二进制流 图片 文件 XMLHttpRequest 请求并处理二进制流数据 之最佳实践
    JS中判断JSON数据是否存在某字段的方法 JavaScript中判断json中是否有某个字段
    json 数字key json 数字作为主键
    ajax 跨域 headers JavaScript ajax 跨域请求 +设置headers 实践
    扩展:gridview 空数据时显示表头
  • 原文地址:https://www.cnblogs.com/lemonzhang/p/12944421.html
Copyright © 2020-2023  润新知