MyBatis创建Maven工程

一、创建Maven工程

在这里插入图片描述

在这里插入图片描述

二、导入依赖

  • 添加打包方式为:jar

在这里插入图片描述

  • 导入依赖
<dependencies>                                                       
    <!-- Mybatis核心 -->                                               
    <dependency>                                                     
        <groupId>org.mybatis</groupId>                               
        <artifactId>mybatis</artifactId>                             
        <version>3.5.9</version>                                     
    </dependency>                                                    
    <!-- junit测试 -->                                                 
    <dependency>                                                     
        <groupId>junit</groupId>                                     
        <artifactId>junit</artifactId>                               
        <version>4.12</version>                                      
        <scope>test</scope>                                          
    </dependency>                                                    
    <!-- MySQL驱动 -->                                                 
    <dependency>                                                     
        <groupId>mysql</groupId>                                     
        <artifactId>mysql-connector-java</artifactId>                
        <version>8.0.28</version>                                    
    </dependency>   
	<!-- log4j日志 -->                     
	<dependency>                         
    	<groupId>log4j</groupId>         
    	<artifactId>log4j</artifactId>   
    	<version>1.2.17</version>        
	</dependency>                        
                                                 
</dependencies>                                                      

三、创建MyBatis的核心配置文件(mybatis-config.xml)

  • 习惯上命名为mybatis-config.xml,将来整合Spring之后,这个配置文件可以省略
  • 核心配置文件主要用于配置连接数据库的环境以及MyBatis的全局配置信息
  • 核心配置文件存放的位置是src/main/resources目录下

在这里插入图片描述

MyBatis官方文档中核心配置文件内容:

在这里插入图片描述

<?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">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="abc123"/>
            </dataSource>
        </environment>
    </environments>
    <!--引入映射文件-->
    <mappers>
        <mapper resource=""/>
    </mappers>
</configuration>
  • 使用properties配置文件配置数据库信息

在这里插入图片描述
在这里插入图片描述

四、创建mapper接口

MyBatis中的mapper接口相当于以前的dao。但是区别在于,mapper仅仅是接口,我们不需要提供实现类

在这里插入图片描述

五、创建MyBatis的映射文件

  • 相关概念:ORM(Object Relationship Mapping)对象关系映射。
  • 对象:Java的实体类对象
    • 关系:关系型数据库
    • 映射:二者之间的对应关系
Java概念数据库概念
属性字段/列
对象记录/行

在这里插入图片描述

  • 映射文件的命名规则:
  • 表所对应的实体类的类名+Mapper.xml
    • 例如:表t_user,映射的实体类为User,所对应的映射文件为UserMapper.xml
    • 因此一个映射文件对应一个实体类,对应一张表的操作
    • MyBatis映射文件用于编写SQL,访问以及操作表中的数据
    • MyBatis映射文件存放的位置是src/main/resources/mappers目录下
  • MyBatis中可以面向接口操作数据,要保证两个一致:
    • mapper接口的全类名和映射文件的命名空间(namespace)保持一致
    • mapper接口中方法的方法名和映射文件中编写SQL的标签的id属性保持一致

在这里插入图片描述
在这里插入图片描述

  • 在MyBatis的核心配置文件中引入映射文件
    1、使用mapper标签引入
<!--引入映射文件-->                                      
<mappers>                                          
    <mapper resource="mappers/UserMapper.xml"/>    
</mappers>                                         

在这里插入图片描述
2、以包为单位引入映射文件

<mappers>                                                                
    <!--                                                                 
        以包为单位引入映射文件:(当有多个mapper映射文件时,需要引入多个mapper标签)                     
        要求:                                                              
            1、mapper接口所在的包要和映射文件所在的包一致                                   
            2、mapper接口要和映射文件的名字一致                                        
    -->                                                                  
    <!--<mapper resource="mappers/UserMapper.xml"/>-->                   
    <package name="com.atcc.mybatis.mapper"/>                            
</mappers>                                                               

在这里插入图片描述

六、测试功能

添加日志功能

pom.xml导入日志依赖
在resources文件下创建名为:log4j.xml 配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
        <param name="Encoding" value="UTF-8" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) \n" />
        </layout>
    </appender>
    <logger name="java.sql">
        <level value="debug" />
    </logger>
    <logger name="org.apache.ibatis">
        <level value="info" />
    </logger>
    <root>
        <level value="debug" />
        <appender-ref ref="STDOUT" />
    </root>
</log4j:configuration>
  • SqlSession默认不自动提交事务,若需要自动提交事务
  • 可以使用SqlSessionFactory.openSession(true);设置为自动提交事务
@Test                                                                                  
public void testMyBatis() throws IOException {                                         
    //加载核心配置文件                                                                         
    InputStream is = Resources.getResourceAsStream("mybatis-config.xml");              
    //获取SqlSessionFactoryBuilder                                                       
    SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();  
    //获取SqlSessionFactory                                                              
    SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);          
    //获取SqlSession                                                                     
    //SqlSession sqlSession = sqlSessionFactory.openSession();                         
    //将openSession的形参设置为:true,就是设置为自动提交事务,后面不再需要手动提交事务                                 
    SqlSession sqlSession = sqlSessionFactory.openSession(true);                       
    //获取mapper接口对象                                                                     
    //通过getMapper,帮助我们创建一个UserMapper实现类,并且返回实现类的一个对象                                   
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);                        
                                                                                       
    //测试功能                                                                             
    int result = mapper.insertUser();                                                  
    //提交事务(因为是使用JDBC管理事务,所以提交和回滚事务都需要使用手动处理)                                           
    //sqlSession.commit();                                                             
    System.out.println("result:"+result);                                              
}                                                                                      

查询

查询功能的标签必须设置resultType或resultMap
resultType:设置默认的映射关系(需要实体类的属性名和数据库中表的字段名保持一致)
resultMap:设置自定义的映射关系(字段名和属性名不一致时)/ 或者处理一对多,多对一的情况

<!--    User getUserById();-->                                               
<!--                                                                         
    查询功能的标签必须设置resultType或resultMap                                          
    resultType:设置默认的映射关系(需要实体类的属性名和数据库中表的字段名保持一致)                            
    resultMap:设置自定义的映射关系(字段名和属性名不一致时)/ 或者处理一对多,多对一的情况                        
-->                                                                          
<select id="getUserById" resultType="com.atcc.mybatis.pojo.User">            
    select * from t_user where id=3                                          
</select>                                                                    
  • 在核心配置文件中添加 typeAliases 标签给全类名起别名,在mapper映射文件中 select 标签的 resultType 属性值将简化
<typeAliases>                                                         
    <!--以包为单位,将包下的所有的类型设置默认的了类型别名,即类名不区分大小写-->                        
    <package name="com.atcc.mybatis.pojo"/>                           
</typeAliases>                                                        

在这里插入图片描述

封装SqlSessionUtils工具类获取SqlSession对象

public class SqlSessionUtils {
    public static SqlSession getSqlSession(){
        SqlSession sqlSession=null;
        try {
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
            sqlSession= sqlSessionFactory.openSession(true);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return sqlSession;
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值