玩转MyBatis框架教程02之入门程序_码到功成云架构的博客-程序员宅基地

技术标签: 框架篇  持久层  玩转MyBatis系列教程  Mybatis教程  dao层  

欢迎进群交流(QQ群:655019021)

1、MyBatis入门程序

第一步: 下载mybatis

下载地址:

https://github.com/mybatis/mybatis-3

https://oss.sonatype.org/content/repositories/snapshots/org/mybatis/mybatis/

1.1、MyBatis目录介绍


lib:依赖包

mybatis-3.4.6.jarmybatis核心jar

mybatis-3.4.6.pdfmybatis文档

第二步: 新建数据库和表

/*Tablestructure for table `user` */

DROPTABLE IF EXISTS `user`;

CREATETABLE `user` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `name` varchar(20) COLLATE utf8_bin DEFAULTNULL,

  `password` varchar(20) COLLATE utf8_binDEFAULT NULL,

  `age` int(3) DEFAULT NULL,

  `address` varchar(20) COLLATE utf8_binDEFAULT NULL,

  PRIMARY KEY (`id`)

)ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

 --插入数据

INSERTINTO USER(NAME,PASSWORD,age,address) VALUES('zhangsan','123456',18,'成都');

INSERTINTO USER(NAME,PASSWORD,age,address) VALUES('lisi','123456',28,'贵州');

INSERTINTO USER(NAME,PASSWORD,age,address) VALUES('wangwu','123456',38,'北京');

第三步:搭建MyBatis项目环境

1、新建项目

   mybatis-3.4.6.jar:mybatis核心包

   mysql-connector-java-5.1.7-bin.jar:MySQL驱动包

第三步:新建mybatis核心配置文件

在想src路径下新mybais核心配置文件SqlMapConfig.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">

<!-- mybatis核心配置 -->

<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/mybatis?characterEncoding=utf-8"/>

              <property name="username"value="root" />

              <property name="password"value="1234" />

           </dataSource>

       </environment>

    </environments>

</configuration>

第四步:新建pojo

新建包:com.itcodeschool.domain 

新建类:User.java

package com.itcodeschool.domain;

publicclass User {

    privateintid;

    private String name;

    private String password;

    privateintage;

    private String address;

   

}

//省略get/set/toString方法

第五步:创建mapper接口映射文件

新建包:com.itcodeschool.mapper

新建文件:UserMapper.xml

<?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="UserMapper">

 

    <!-- id:设置唯一值,resultType 配置返回值类型User-->

<select id="findUser"resultType="com.itcodeschool.domain.User"> 

 

    <!-- 编写 SQL 语句 -->

        SELECT *FROM User

    </select>

  

</mapper>

第六步:加载接口映射文件

在SqlMapConfig.xml文件末尾加上即可

    <!-- 加载UserMapper映射文件 -->

    <mappers>

     <mapper resource="com/itcodeschool/mapper/UserMapper.xml"/>

    </mappers>

第七步:新建测试类

新建包:com.itcodeschool.test

新建测试类:test.java

package com.itcodeschool.test;

import java.io.IOException;

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;

importorg.apache.ibatis.session.SqlSessionFactoryBuilder;

import org.apache.tomcat.util.collections.SynchronizedStack;

 

import com.itcodeschool.domain.User;

 

publicclass UserTest {

   

    publicstaticvoid main(String[] args) {

       

        //1、读取配mybatis核心置文件,转换为输入流

        String resource = "SqlMapConfig.xml";

       

        InputStream in = null;

        try {

            in = Resources.getResourceAsStream(resource);

        } catch (IOException e) {

            e.printStackTrace();

        }

       

        //2、根据mybatis核心配置文件输入流构建一个session工厂,SqlSessionFactory

        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);

       

        //3、根据SqlSessionFactory对象开启一个会话:SqlSession

        SqlSession sqlSession = sqlSessionFactory.openSession();

        List<User> list = sqlSession.selectList("UserMapper.findUser");

    

        System.out.println("总数量:"+list.size());

        for(User user : list) {

        System.out.println(user);

        }

      //释放资源

        sqlSession.close();

    }

 

}

 

项目完整目录如下:

第八步:运行测试

 

第九步:加入日志

加入jar包

在mybatis-3.4.6\lib目录下找到log4j-1.2.17.jar、slf4j-log4j12-1.7.25.jar加入到项目中

 

在src目录系新建log4j配置文件,log4j.properties

##########Set Log Levels###############

log4j.rootLogger = DEBUG,console

 

######### Output to console ####################

log4j.appender.console = org.apache.log4j.ConsoleAppender

log4j.appender.console.Target = System.out

log4j.appender.console.layout = org.apache.log4j.PatternLayout

log4j.appender.console.layout.ConversionPattern = %d{ABSOLUTE}%5p%c{ 1:%L-%m%n

 

重新运行UserTest.java类

如下图,可以看到更多日志信息


输出更多的日信息有利于查看程序运行过程和排查错误

 

欢迎进群交流(QQ群:655019021)

 


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

智能推荐

Python获取高德地图POI信息_马儿跑的快的博客-程序员宅基地

** ** 朋友需要帮忙获取资源信息,于是我利用周末时间,用python写了个工具从高德地图上抓取信息(包括位置,电话,经纬度等),得到了他想要的数据, 绝对可靠**** url = "http://restapi.amap.com/v3/place/text?&amp;keywords=&amp;types=" + self.cityType + "&amp;city=" + self.ci...

单例模式和多例模式的总结_钟渊的博客-程序员宅基地

学习交流关注微信公众号:钟渊博客今天开始学习设计模式之单例和多例单例模式的关键有两点:1.构造方法为私有,这样外界就不能随意调用。2.get的方法为静态,由类直接调用多例模式(Multiton)1、多例类可以有多个实例2、多例类必须能够自我创建并管理自己的实例,并向外界提供自己的实例。一、单例模式和多例模式说明:1.单例模式和多...

使用tensorboard查看deeplab v3+ 训练 可视化_TinaO-O的博客-程序员宅基地

所有的训练日志文件以及权重都保存在:..../deeplab/datasets/pascal_voc_seg/exp/train_on_trainval_set/train所以输入命令:tensorboard --logdir=.../deeplab/datasets/pascal_voc_seg/exp/train_on_trainval_set/train即可进行可视化:然...

Delphi 中的常用事件总结_delphi 事件_疯流人物的博客-程序员宅基地

序号 事件 描述 1 OnActive 焦点称到窗体或控件时发生 2 OnClick 鼠标单击事件 3 OnDbClick 鼠标双击事件 4 OnClose和OnCloseQuery 当关闭一个窗体时就会响应OnClose和OnCloseQuery事件 ,OnCloseQuery事件比OnClose具有更高的优先级 5 OnContextPopup 在窗体上单击鼠标右键时触发 6 OnCreate 建

1月9日学习内容整理:请求库requests之基于GET和POST请求,response对象的属性_weixin_34204722的博客-程序员宅基地

Requests模块介绍:#介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3)#注意:requests库发送请求将网页内容下载下来以后,并不会执行js代码,这需要我们自己分析目标站点然后发起新的request请求#安装:pip3 install requests#各种请求方式:...

上手华为软开云DevOps前后端分离实践之-后端SpringBoot_Heartsuit的博客-程序员宅基地

简介华为软开云主要目的是为企业提供一套`DevOps`(即开发运维)的云端解决方案,包括项目管理、代码仓库、编译构建、部署发布、流水线,甚至`CloudIDE`,实现云端的开发与维护。这里我们先忽略华为软开云的项目管理功能(`Scrum`,看板里的需求规划、任务指派、工时分配),测试功能,文档管理功能,CloudIDE等;重点关注`项目创建、代码托管、编译构建、部署、发布以及流水线功能`;同时...

随便推点

centos7安装配置samba_vfdn的博客-程序员宅基地

1、安装samba执行yum -y install samba2、配置sambamkdir -p samba/share 创建共享目录chmod 777 /samba/share/ 设置目录权限,否则windows下访问不能修改修改samba配置文件:cd /etc/samba/ 定位到配置文件目录cp smb.conf smb.conf.ba...

Hyper-V虚拟机安装Ubuntu,启动的时候会出现:Please remove the installation medium,then press ENTER..._weixin_38170065的博客-程序员宅基地

Hyper-V虚拟机安装Ubuntu成功以后,重启的时候页面会一直卡在下面,并报Please remove the installation medium,then press ENTER,这是因为启动默认是从CD/DVD启动,所以才导致了这样的问题。解决方法:先关闭正在启动的Ubuntu,如果强制关闭也无法关闭,那么先等一段时间以后,再强制关闭就可以了,然后打开Hyper-...

uniapp 二维码或图片转成base64格式并分享到qq或微信_兄弟连勇闯天涯的博客-程序员宅基地

断断续续的搞了两次,终于把这个功能实现了。1.二维码的插件2.转base64格式的工具(图像转换工具,可用于图像和base64的转换)3.uniapp安装// 以下路径需根据项目实际情况填写import { pathToBase64, base64ToPath } from '../../js/image-tools/index.js'4.pathToBase64从图像路径转...

RMAN-05501 RMAN-05001_aborting duplication of target database_Data & safety的博客-程序员宅基地

错误信息:RMAN-05501: aborting duplication of target databaseRMAN-05001: auxiliary file name /oracle/oradata/skatedb/tbs_statspack01.dbf conflicts with a file used by the target database在用rman duplicate创建dg的时候,抛出如上的错误,这里只列出用rman dumplicate的过程,具体操作步骤如下:.

电力系统潮流计算中的导纳矩阵计算,matlab源程序_潮流计算中导纳矩阵的计算 程序_山高一小的博客-程序员宅基地

电力系统导纳矩阵计算,MATLAB这学期在上大四专业选修课时,一个课后作业是写一个电力系统的导纳矩阵计算程序,我找了找资料肝了半天的程序如下图所示,希望能对大家有用。程序说明1.具有非标准变比的变压器处理如果变压器阻抗归算到非标准变比的K侧,则在参数输入脚本文件data中变压器参数第五列记为0;如果归算到非标准变比的1侧,则在参数输入脚本文件data中变压器参数第五列记为1。2.线路为双回线时,需要将两个节点之间线路阻抗减半,导纳加倍;同时,如果线路是双回线则在data线路参数中第五列记为1,否

推荐文章

热门文章

相关标签