Mybatis-helloWorld-程序员宅基地

技术标签: Java学习  java  mybatis  mysql  ssm-Mybatis  数据库  

第一个Mybatis配置

配置准备

相关环境依赖

在这里插入图片描述

  • 数据库准备

    新建一个数据库座测试用,在新建的数据库里先创建一张表,我们在表里创建几个字段,存放一两条数据。
    在这里插入图片描述
    在这里插入图片描述

配置过程

应该先导入相关jar包啊!!!

  1. 先写一个bean类,写好get和set方法,因为以后要输出测试所以把toString方法也写上。

    package com.atahpu.mybatis;
    /**
     * @Author : JackWang
     * @Date : 2021/7/23 13:53
     * @E-mail : [email protected]
     * @Version 1.0
     * @TOOL: Intellij IDEA
     * @Description:
     */
    public class Employee {
          
        private int id;
        private String lastName;
        private String gendar;
        private String email;
    
        @Override
        public String toString() {
          
            return "Employee{" +
                    "id=" + id +
                    ", lastName='" + lastName + '\'' +
                    ", gendar='" + gendar + '\'' +
                    ", email='" + email + '\'' +
                    '}';
        }
    
        public int getId() {
          
            return id;
        }
    
        public void setId(int id) {
          
            this.id = id;
        }
    
        public String getLastName() {
          
            return lastName;
        }
    
        public void setLastName(String lastName) {
          
            this.lastName = lastName;
        }
    
        public String getGendar() {
          
            return gendar;
        }
    
        public void setGendar(String gendar) {
          
            this.gendar = gendar;
        }
    
        public String getEmail() {
          
            return email;
        }
    
        public void setEmail(String email) {
          
            this.email = email;
        }
    }
    
    
  2. 编写mybatis的xml依赖环境;这个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">
            <environment id="development">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.cj.jdbc.Driver"/>          <!--引入Driver类的路径-->
                    <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>    <!--数据库地址-->
                    <property name="username" value="root"/>                              <!--数据库登录的账号-->
                    <property name="password" value="r3344520"/>                           <!--数据库登录的密码-->
                </dataSource>
            </environment>
        </environments>
        <mappers>
            <mapper resource="selectEmp.xml"/>                                      <!--这个地方的引用还比较重要,算是一个疑问。-->
        </mappers>
    </configuration>
    
    1. 测试类的编写

      package com.atahpu.mybatis;
      
      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 java.io.IOException;
      import java.io.InputStream;
      
      /**
       * @Author : JackWang
       * @Date : 2021/7/23 13:55
       * @E-mail : [email protected]
       * @Version 1.0
       * @TOOL: Intellij IDEA
       * @Description:
       */
      public class mybatisTest {
              
      
          @Test
          public void Test() throws IOException {
              
              String resource = "mybatis-config.xml";//mybati配置环境的引入
              InputStream inputStream = Resources.getResourceAsStream(resource);
              SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//新建一个SQLSession工厂类去获得一个SqlSession
              SqlSession session = sqlSessionFactory.openSession();//获得一个sqlSession
              try{
              
                  Employee employee = session.selectOne("com.atahpu.mybatisEmp.selectEmp", 1);//selectone函数,调用selectEmp这个xml文件中配置好的sql语句
                  System.out.println(employee);//输出测试
              }finally {
              
                  session.close();//关闭session。
              }
          }
      }
      
      
      1. 编写这个selectEmp.xml文件,这个文件应该在上面那个session.selectOne()方法执行之前执行。

        <?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">
        <!--相关参数说明:namespacce:这个可以随便写,可以把命名空间当成包看。
        id:唯一标识符,一个命名空间内,只有这么一个
        resultType:返回值类型,返回Employee类,所以我这就这么写的。
        中间那个就是SQ语句。
        -->
        <mapper namespace="com.atahpu.mybatisEmp">
            <select id="selectEmp" resultType="com.atahpu.mybatis.Employee">
                select * from tbl_employee where id = #{id}
            </select>
        </mapper>
        

程序结果

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ShabbyWang/article/details/119034704

智能推荐

ind2sub用法_ind2sub怎么转换-程序员宅基地

文章浏览阅读1.2k次。The ind2sub command determines the equivalentsubscript values corresponding to a single index into an array.ind2sub 将数组中的索引转换成矩阵中的坐标。[I,J] = ind2sub(siz,IND) 返回矩阵I(行下标),J (列下标)。siz是一个向量,siz(1)表示行数_ind2sub怎么转换

实训1:拉格朗日法插补用户用电量数据缺失值_实训1插补用户用电量数据缺失值-程序员宅基地

文章浏览阅读5.5k次,点赞3次,收藏26次。实训1:拉格朗日法插补用户用电量数据缺失值实训任务:读取missing_data.csv表查询缺失值位置3.使用SciPy库中的interpolate模块下的lagrange对数据进行拉格朗日插值使用数据查看是否存在缺失值,不存在则说明插值成功查询缺失值位置isnull=[]for i in df.columns: for j in df.index: if df.isnull().loc[j,i]: isnull.append((j,i_实训1插补用户用电量数据缺失值

MVC 打印解决方案--SNF快速开发平台3.1-程序员宅基地

文章浏览阅读59次。SNF-MVC打印报表方案:报表模块创建的过程如下:利用Stimulsoft Reports客户端报表工具新增一个报表文件 *.mrt当然你也可以拿好用的*.mrt模版文件进行复制出来一个,我常用这个方法。按规定要求放于指定位置:Areas->Sys->Reports->BaseRole.mrt打开对应的页面功能,点击打印即可,也可以在线编辑报表...

Android studio使用CMake引入第三方so库及头文件_android studio c++ 使用cmake 引用外部opencv so库的demo-程序员宅基地

文章浏览阅读4.7k次,点赞7次,收藏19次。Android studio中NDK开发(二)——使用CMake引入第三方so库及头文件一、前言通常来说,第三方提供的so库以及头文件都没有没有引入jni.h头文件。所以我们在导入第三方so库以及头文件的时候需要手动的将其关联到官方的native-lib库中,关联成功后就可以在native-lib中include进第三方头文件,引进头文件成功后就可以在自定义的JNI接口中对第三方头文件中内..._android studio c++ 使用cmake 引用外部opencv so库的demo

机器学习kaggle案例:沃尔玛招聘 - 商店销售预测_kaggle案例:沃尔玛招聘 - 商店销售-程序员宅基地

文章浏览阅读5.6k次,点赞10次,收藏57次。kaggle链接:https://www.kaggle.com/c/walmart-recruiting-store-sales-forecastingipynb文件:https://github.com/824024445/KaggleCases一、简介1.1 比赛描述建模零售数据的一个挑战是需要根据有限的历史做出决策。如果圣诞节一年一次,那么有机会看到战略决策如何影响到底线。在此招聘..._kaggle案例:沃尔玛招聘 - 商店销售

Python获取docx文档里的批注_python获取word批注和原文-程序员宅基地

文章浏览阅读3.4k次。使用Python-docx库可以很方便的处理docx文件(官方文档)但是有些隐含的信息Python-docx库好像无法读取,比如docx文档里的批注下面介绍一种用python获取docx文档批注的方法首先区分doc文件和docx文件以前Office产品中Word用.doc文件格式,这种二进制格式很难与其他软件兼容 。docx是Microsoft Office2007之后版本使用的,用新的基..._python获取word批注和原文

随便推点

MLE、MAP、贝叶斯估计、MCMC、EM_mle,mple,cd-程序员宅基地

文章浏览阅读1.2k次。机器学习中的MLE、MAP、贝叶斯估计 - 李文哲的文章 - 知乎 https://zhuanlan.zhihu.com/p/37215276上面这篇文章对所提到的三种方法做了清晰的对比。总结图:另外文中总结:几点重要的Take-aways:每一个模型定义了一个假设空间,一般假设空间都包含无穷的可行解; MLE不考虑先验(prior),MAP和贝叶斯估计则考虑先验(prior); MLE、MAP是选择相对最好的一个模型(point estimation), 贝叶斯方法则是通过观测数据来估_mle,mple,cd

创建pjsip module 的python 版本时遇到的错误: error: ld returned 1 exit status error: ommand 'x86_64-linux-g_安装python3.7 ld returned 1 exit status-程序员宅基地

文章浏览阅读883次。创建pjsip module 的python 版本时遇到的错误: error: ld returned 1 exit status error: ommand ‘x86_64-linux-gnu-gcc’ failed解决办法如下:(1)执行configure 时 先执行 export CFLAGS=”$CFLAGS -fPIC” 命令。 所以就是说把 ./configure &&make dep_安装python3.7 ld returned 1 exit status

【调剂】安徽工程大学计算机与信息学院2020年硕士研究生调剂公告-程序员宅基地

文章浏览阅读385次。点击文末的阅读原文或者公众号界面左下角的调剂信息或者公众号回复“调剂”是计算机/软件等专业的所有调剂信息集合,会一直更新的。各位考生: 根据今年硕士研究生入学考试初试国家分数线,结合我...

java 异步得到函数返回值_使用JavaScript进行异步编程-程序员宅基地

文章浏览阅读123次。毫无疑问,虽然JavaScript的历史比较悠久,但这并不妨碍它成为当今最受欢迎的编程语言之一。对刚接触该语言的人来说,JavaScript的异步特性可能会有一些挑战。在本文中,我们将了解和使用Promise和async/await来编写小型异步程序。通过这些示例,你将了解一些可以在自己程序中使用的异步技巧。本文中的所有代码示例都是基于Node环境编写的,因此建议安装Node以后运行。虽..._java 拿到回调异步回调函数的返回值

android textView加载html 解决a标签链接无效_android开发去掉textview使用html.from里面的a链接的下划线,链接不生效-程序员宅基地

文章浏览阅读4.8k次。直接贴代码 textContent = (TextView) findViewById(R.id.content); String strLoadString="点击我"; CharSequence charSequence = Html.fromHtml(strLoadString); textContent.setText(charSequence); textCo_android开发去掉textview使用html.from里面的a链接的下划线,链接不生效

css属性line-height行高的深入理解及用法-程序员宅基地

文章浏览阅读668次。打卡第一天,学习整理东西,以备后用,顺带打点鸡血,喝点鸡汤,让自己可以更有信心整理下去。当一个小小的心念变成成为行为时,便能成了习惯;从而形成性格,而性格就决定你一生的成败。line-height(行高)是指一行文字的高度,具体来说应该是两行文字之间基线的垂直距离。说到基线,那咱们先分析下这个基线。一行文字包括中文和英文,从上到下包括四条线,分别是顶线,中线,基线,底线,这个很像上学学英语...