广告
返回顶部
首页 > 资讯 > 数据库 >mybatis介绍与环境搭建
  • 509
分享到

mybatis介绍与环境搭建

2024-04-02 19:04:59 509人浏览 安东尼
摘要

一、不用纯jdbc的原因,即缺点。1、数据库理解,使用时创建,不用时释放,会对数据库进行频繁的链接开启和关闭,造成数据库的资源浪费,影响数据库的性能。设想:使用数据库的连接池。2、将sql语句硬编码到jav

一、不用纯jdbc的原因,即缺点。

1、数据库理解,使用时创建,不用时释放,会对数据库进行频繁的链接开启和关闭,造成数据库的资源浪费,影响数据库的性能。
设想:使用数据库的连接池。
2、将sql语句硬编码到java代码中,不利于系统维护。
设想:将sql放到配置文件中。
3、向preparedstatement中设置参数,对占位符位置和设置参数值,硬编码在Java代码中,不利于系统维护。
设想:将sql语句及占位符配置到xml中。
4、从resultset中便利结果集时,存在硬编码,将获取表的字段进行硬编码,不利于系统维护。
设想;将结果集,自动映射成Java对象

二、mybatis是什么

1、mybatis程序员将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成满足需要的sql语句。
2、mybatis可以将输入参数自动映射,可以将结果集映射为Java对象,并且sql相对自由,不想hibernate那样看不到sql。
3、mybatis需要一个SqlMapConfig.xml,它是mybatis的全局配置文件,其中包括了数据库连接池,配置了数据源、事务等。
4、还需要一个SQLMap配置文件,它配置了映射关系(配置sql语句),sql语句要写在这个配置文件里,其实就是配置了一个statement,避免了sql语句硬编码到Java源文件中。后面会详细介绍这个配置文件的使用。
5、SqlsessionFactory是mybatis中生成Sqlsession的工厂,操作数据库。
mybatis框架结构是把sql语句的映射文件加载到SQLMapConfig中去,然后SqlSessionFactory加载SQLMapConfig后生成SQLSession,SQLSession来执行Statement。

三、构建一个mybatis工程。

1.所需要的jar包

mybatis介绍与环境搭建

即需要下载mybatis包和数据库驱动包,可以从GitHub上下载mybatis,解压后里面有lib文件夹和一个mybatis的核心包,lib中得包是mybatis的依赖包

mybatis的下载

2.工程结构。

mybatis介绍与环境搭建

src中放源码,lib中放所依赖的jar包,config中放各种配置文件,config文件下的sqlmap包中放sql映射文件。lib和config文件夹创建好后要记得邮件选择build path->use a source folder

 3.编写log4j.properties

mybatis介绍与环境搭建

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

mybatis介绍与环境搭建

 

 注意:开发时log4j.rootLogger=DEBUG,生产环境可以把DEBUG换成info

4.编写SqlMapConfig.xml

 

mybatis介绍与环境搭建

<?xml version="1.0" encoding="UTF-8" ?>   
    <!DOCTYPE configuration
     PUBLIC "-//mybatis.org//DTD Confi 3.0//EN"
    "Http://www.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.jdbc.Driver" />  
                    <property name="url" value="jdbc:mysql://localhost:3306/mybatisTest?characterEncoding=utf-8" />  
                    <property name="username" value="root" />  
                    <property name="passWord" value="123456" />  
                </dataSource>  
            </environment>  
        </environments>
        <mappers>
        <mapper resource="sqlmap/user.xml"/>
      </mappers> 
    </configuration>

mybatis介绍与环境搭建

 

 

 

 <mappers>中包括的是针对每个对象的sql映射文件,environment标签中配置的是数据源,需要变动的只有这两个地方。

5.编写user.xml

mybatis介绍与环境搭建

<?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对应一个dao -->
<mapper namespace="test">
    <select id="srarchByid" parameterType="int" resultType="entity.users">
        select * from users where id=#{id}
    </select>
    <select id="searchByName" parameterType="String" resultType="entity.users">
        select * from users where name like '%${value}%'
    </select>
    <insert id="insertUser" parameterType="entity.users">
        insert into users(name,birthday,address,sex) values(#{name},#{birthday},#{address},#{sex})
        <selecTKEy keyProperty="id" order="AFTER" resultType="int">
            select last_insert_id()
        </selectKey>
    </insert>
    <delete id="deleteUser" parameterType="java.lang.Integer">
        delete from users where id=#{id}
    </delete>
    <update id="updateUser" parameterType="entity.users">
        update users set name=#{name},address=#{address},birthday=#{birthday},sex=#{sex} where id=#{id}
    </update>

</mapper>

mybatis介绍与环境搭建

 

 这里共写了查询,插入,删除,更新四个sql语句,都用对应的标签包裹起来,每一个标签最后会映射为一个statement,标签中的属性id是此statement的唯一标示,以后再Java中就是通过这个id来调用的。parameterType表示输入参数,类似于在jdbc的预编译时为占位符赋值时的参数类型。

resultType是数据库返回结果对应的pojo类的类型。

<selectKey>标签是用来返回主键的,当插入一条记录后向立马得到这条记录的id就要加上这个标签,其中keyProperty属性标示的是实体类的主键属性,order表示此查询是在插入前执行还是插入后执行,resultType是查询的结果类型

6.创建一个实体类对应数据库,因为比较简单,此处不再给出代码

7.用Junit来测试。

mybatis介绍与环境搭建

package mt;import java.io.IOException;import java.io.InputStream;import java.util.Date;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.Test;import entity.Classes;import entity.users;public class FirstDemo {
    @Test    public void findUserbyIdTest(){        
        try {
            String resource="SqlMapConfig.xml";
            InputStream stream=Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(stream);
            SqlSession sqlSession=sqlSessionFactory.openSession();
            users u=sqlSession.selectOne("test.srarchByid", 1);
            System.out.println(u.getBirthday().toString());
            sqlSession.close();
            
        } catch (IOException e) {            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    @Test    public void findUserByName(){        try {
            String resource="SqlMapConfig.xml";
            InputStream stream=Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(stream);
            SqlSession sqlSession=sqlSessionFactory.openSession();
            List<users> u=sqlSession.selectList("test.searchByName", "张");
            sqlSession.close();
        } catch (IOException e) {            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        
    }
    @Test    public void insertUser(){        try {
            String resource="SqlMapConfig.xml";
            InputStream stream=Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(stream);
            SqlSession sqlSession=sqlSessionFactory.openSession();
            users u=new users();
            u.setName("王磊");
            u.setSex("f");
            u.setBirthday(new Date());
            u.setAddress("上海");
            sqlSession.insert("test.insertUser", u);
            System.out.println(u.getId());
            sqlSession.commit();
            sqlSession.close();
        } catch (IOException e) {            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    @Test    public void deleteUser(){        try {
            String resource="SqlMapConfig.xml";
            InputStream stream=Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(stream);
            SqlSession sqlSession=sqlSessionFactory.openSession();
            sqlSession.insert("test.deleteUser",2);
            sqlSession.commit();
            sqlSession.close();
        } catch (IOException e) {            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    @Test    public void updateUser(){        try {
            String resource="SqlMapConfig.xml";
            InputStream stream=Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(stream);
            SqlSession sqlSession=sqlSessionFactory.openSession();
            users u=new users();
            u.setId(3);
            u.setName("王磊");
            u.setSex("f");
            u.setBirthday(new Date());
            u.setAddress("上海66666");
            sqlSession.update("updateUser",u);
            System.out.println(u.getId());
            sqlSession.commit();
            sqlSession.close();
        } catch (IOException e) {            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

mybatis介绍与环境搭建

 


您可能感兴趣的文档:

--结束END--

本文标题: mybatis介绍与环境搭建

本文链接: https://www.lsjlt.com/news/42747.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mybatis介绍与环境搭建
    一、不用纯jdbc的原因,即缺点。1、数据库理解,使用时创建,不用时释放,会对数据库进行频繁的链接开启和关闭,造成数据库的资源浪费,影响数据库的性能。设想:使用数据库的连接池。2、将sql语句硬编码到jav...
    99+
    2022-10-18
  • 环境搭建及介绍
    一:python下载    官网下载对应的版本,安装,设置坏境变量,设置环境变量有两种方法,一种方法是在PATH中添加路径,另一种方法稍后介绍。二:运行python的方式python属于一种脚本语言,直接通过解释器就可以实现相应的功能:即:...
    99+
    2023-01-30
    环境
  • plsql的环境与介绍:环境的搭建和plsql的简单介绍
    PLSQL编程1.环境的搭建(1)创建一个存储表空间SQL> conn /as sysdbaConnected.SQL> create tablespace plsql datafile '/u...
    99+
    2022-10-18
  • MyBatis开发环境搭建与配置
    一、MyBatis环境搭建 创建工程 引入相关依赖(pom.xml) 创建数据库(mybatis) 创建数据库链接信息配置文件(db.properties) 创建MyBatis核心配置文件(mybatis-config.xml) 一、创建工...
    99+
    2023-10-18
    mybatis java mysql
  • Mybatis(一):环境搭建
    Mybatis(一):环境搭建 前言一、MyBatis简介1、MyBatis历史2、MyBatis特性3、MyBatis下载4、和其它持久化层技术对比 二、搭建MyBatis1、开发环境2...
    99+
    2023-09-01
    mybatis java 开发语言 spring
  • Go开发环境搭建详细介绍
    目录1、安装 Go常规安装2、使用 GoLand3、使用 VSCode1、安装 Go Go 语言支持多平台,因此需要根据你的平台来下载对应的 Go 安装包。本文以当前最新的版本(1....
    99+
    2023-05-15
    Go开发环境搭建 Go开发环境
  • React-Native 环境搭建和基本介绍
    环境搭建准备 1.环境搭建 React Native中文网 2.开发工具 前端开发软件:Visual Studio Code 移动端开发软件:Xcode、Android Studio...
    99+
    2022-11-12
  • Python开发环境的搭建方法介绍
    本篇内容介绍了“Python开发环境的搭建方法介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python开发环境搭建步骤一、 安装Apt...
    99+
    2023-06-17
  • 如何搭建Mybatis环境
    这篇文章主要介绍如何搭建Mybatis环境,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Mybatis的简介:  MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache sof...
    99+
    2023-05-30
    mybatis
  • hibernate框架环境搭建具体步骤(介绍)
    一. 概述:hibernate框架是作用于dao层的,实现对数据的持久化保存.通过面向对象的方式操作数据库。二. hibernate框架的搭建1.导包  lib目录下的required文件夹下的所有jar包.  mysq...
    99+
    2023-05-31
    hibernate 环境搭建 框架
  • idea怎么搭建mybatis环境
    要在IntelliJ IDEA中搭建MyBatis环境,请按照以下步骤进行操作:1. 在IntelliJ IDEA中创建一个新的Ja...
    99+
    2023-10-10
    idea mybatis
  • java简介及环境搭建
    目录1.1java简介1.2sun公司1.3java发展历史1.4java相关的词汇1.5java程序编译运行过程1.6测试java开发环境1.7Java第一个程序编写并编译运行(1...
    99+
    2022-11-13
  • 使用Spring如何搭建一个SpringMVC与MyBatis环境
    这篇文章将为大家详细讲解有关使用Spring如何搭建一个SpringMVC与MyBatis环境,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.对原生态jdbc程序中问题总结1 jdbc程序...
    99+
    2023-05-31
    mybatis spring springmvc
  • Lamp环境中如何搭建Mysql与PHP环境的搭建
    今天就跟大家聊聊有关  Lamp环境中如何搭建Mysql与PHP环境的搭建,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 Lam...
    99+
    2022-10-18
  • 详细介绍web服务器中怎么搭建php环境
    在当今互联网高速发展的时代,web服务器环境搭建成为了业内难以避免的问题。而在众多web服务器环境中,php环境被广泛使用。本文将针对php环境搭建进行详细介绍,力求帮助初学者、开发者快速搭建php环境。一、 选定web服务器软件搭建php...
    99+
    2023-05-14
  • MyBatis 环境搭建配置全过程【IDEA】
    文章目录 一、MyBatis 介绍二、MyBatis 环境搭建1.MyBatis 下载2.配置 jdk 版本3.创建 Maven 工程4.IDEA 连接数据库5.项目文件构架6.引入相关依赖7.命令行创建数据库8.数据库配置文件9....
    99+
    2023-08-17
    1024程序员节 java mybatis
  • kafka介绍与搭建(单机版)
    1.1 主要功能根据官网的介绍,ApacheKafka®是一个分布式流媒体平台,它主要有3种功能:  1:It lets you publish and subscribe to streams of records.发布和订阅消息流,这个...
    99+
    2023-01-31
    单机版 kafka
  • ChatGLM-6B (介绍相关概念、基础环境搭建及部署)
    文章目录 前言一、ChatGLM-6B是什么?二、安装虚拟的python环境1.下载2.安装3.设置国内源(危险)4.虚拟环境使用简介 三、部署ChatGLM-6B1. clone代码2....
    99+
    2023-08-31
    chatgpt chatglm python 人工智能
  • 怎么在Mybatis中搭建动态SQL环境
    今天就跟大家聊聊有关怎么在Mybatis中搭建动态SQL环境,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. Mybatis–动态SQL动态 SQL 是 MyBatis 的强大特性...
    99+
    2023-06-14
  • 使用IDEA搭建MyBatis环境详细过程
    创建一个项目 这里根据需求自己选择 在pom.xml中导入mybatis的核心jar包 Mybatis 源码下载 https://github.com/mybatis/mybat...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作