文章目录

  • 1. MyBatis实例
    • 1.1 添加Mybatis依赖
    • 1.2 创建MyBatis配置文件
    • 1.3.创建po类
    • 1.4.创建映射文件
      • #{}: 表示sql参数,一个占位符。
    • 1.5.测试
    • 1.6.使用log4j输出日志

1. MyBatis实例

1.1 添加Mybatis依赖

<dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency>
</dependencies>

1.2 创建MyBatis配置文件

在 resources 文件夹中创建 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">
<configuration><!-- 配置数据源相关属性和事务 --><environments default="development"><!-- 可以配置多个数据源环境,默认使用default中的值 --><environment id="development"><!-- 使用jdbc的事务管理 --><transactionManager type="JDBC" /><!-- 配置数据源,并使用自带数据库连接池 --><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver" /><property name="url"value="jdbc:mysql://localhost:3306/emp?characterEncoding=utf-8" /><property name="username" value="root" /><property name="password" value="123" /></dataSource></environment></environments><!-- 配置映射文件,可配置多个 --><mappers><mapper resource="com/neusoft/po/Emp.xml" /></mappers>
</configuration>

transactionManager标签的type属性有两种取值:

  1. JDBC:全部使用jdbc的事务管理
  2. MANAGED:不使用事务管理,也从不提交

dataSource标签的type属性有三种取值:

  1. POOLED:使用Mybatis自带的数据库连接池
  2. UNPOOLED:不使用任何数据库连接池
  3. JNDI:jndi形式使用数据库连接

如果是spring直接在yml或者properties里写

spring:datasource:url: 'jdbc:mysql://localhost:3306/oa-0505?serverTimezone=UTC'username: 'root'password: '1314'driver-class-name: com.mysql.cj.jdbc.Drivermybatis:mapper-locations: classpath:mapper/*.xmltype-aliases-package: top.beinggod.oa.backend.pojoconfiguration:map-underscore-to-camel-case: true

1.3.创建po类

创建 Emp.java类

package com.neusoft.po;
public class Emp {private Integer empno;private String ename;private String job;private String hiredate;private Double sal;private Integer deptno;@Overridepublic String toString() {return empno+"\t"+ename+"\t"+job+"\t"+hiredate+"\t"+sal+"\t"+deptno;}//get/set方法...
}

注意:po类属性名必须与数据库表的字段名一致。

1.4.创建映射文件

在 po 类所在包下,创建相同名称的映射文件:Emp.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="emp"><select id="getEmpById" parameterType="int" resultType="com.neusoft.po.Emp">select * from emp where empno = #{empno}</select>
</mapper>

注意: mapper标签:映射文件的根标签。 mapper标签namespace属性:命名空间,对sql进行分类管理,可防止id重复

select标签:表示查询。 select标签id属性:此属性要唯一。这个id可称为statement的id。 select标签parameterType属性:sql参数的类型。 select标签resultType属性:sql语句执行后返回的类型。

sql语句:

#{}: 表示sql参数,一个占位符。

当parameterType属性为对象类型时:#{} 中的参数名为对象的属性名。 当parameterType属性为单个值时,参数名可以任意。

从映射文件中可以看到:MyBatis会根据字段名与实体对象中的属性名进行映射,从而实现自动将查询数据注入到实体对象的每一个属性中。这就是输出映射。

1.5.测试

package com.neusoft;
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 com.neusoft.po.Emp;
public class Test {public static void main(String[] args) {try {//读取配置文件,获得配置文件信息InputStream input = Resources.getResourceAsStream("SqlMapConfig.xml");//通过配置信息创建SqlSessionFactorySqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(input);//通过SqlSessionFactory打开数据库会话SqlSession sqlSession = ssf.openSession();//通过SqlSession的selectOne(返回一行记录时使用)方法执行sql语句Emp emp = sqlSession.selectOne("emp.getEmpById",7521);System.out.println(emp);//关闭数据库会话sqlSession.close();} catch (Exception e) {e.printStackTrace();}}
}
  1. 当返回一条记录时,使用 SqlSession 的 selectOne 方法执行sql语句,MyBatis会将返回记录输出映射为一个java对象。

  2. 当返回多条记录时,使用 SqlSession 的 selectList 方法执行sql语句,MyBatis会将返回记录输出映射为一个java集合。

  3. selectOne 方法和 selectList 方法都只有两个参数:

    1. 第一个参数为指定的sql语句,根据映射文件中的id,注意要加上命名空间
    2. 第二个参数是给 sql语句参数传值(可以是一个值、或一个对象)

1.6.使用log4j输出日志

上面实例运行后,在控制台中只输出了查询结果,却没有中间的执行过程信息。这对我们开发时进行错误调试是非常不利的。我们希望在开发时,能够看到详细的执行过程

MyBatis默认使用log4j输出日志。所以,下面使用log4j来让MyBatis输出更多的日志信息。

  1. 添加log4j依赖

    <!-- 使用log4j输出更多的日志信息 -->
    <dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version>
    </dependency>
    
  2. 在resources文件夹中添加log4j配置文件(log4j.properties)

    ### direct log messages to stdout ###
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n
    ### direct messages to file mylog.log ###
    ### log4j.appender.file=org.apache.log4j.FileAppender
    ### log4j.appender.file.File=d:mylog.log
    ### log4j.appender.file.layout=org.apache.log4j.PatternLayout
    ### log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n
    ### set log levels - for more verbose logging change 'debug?info?warn?error' ###
    ### log4j.rootLogger=debug,stdout,file
    log4j.rootLogger=debug,stdout
    

MyBatis:快速入门代码实例(maven代码版)相关推荐

  1. 网络编程代码实例:多进程版

    文章目录 前言 代码仓库 内容 代码(有详细注释) server.c client.c Makefile 结果 总结 参考资料 作者的话 前言 网络编程代码实例:多进程版. 代码仓库 yezhenin ...

  2. mybatis select count(*) 一直返回0 mysql_Mybatis教程1:MyBatis快速入门

    点击上方"Java技术前线",选择"置顶或者星标" 与你一起成长 一.Mybatis介绍 MyBatis是一个支持普通*SQL*查询,存储过程和高级映射的优秀持 ...

  3. Java基础-SSM之mybatis快速入门篇

    Java基础-SSM之mybatis快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 其实你可能会问什么是SSM,简单的说就是spring mvc + Spring + m ...

  4. MyBatis学习总结(1)——MyBatis快速入门

    2019独角兽企业重金招聘Python工程师标准>>> 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所 ...

  5. MyBatis学习笔记(一)——MyBatis快速入门

    转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4261895.html 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优 ...

  6. 视频教程-mybatis快速入门到精通-Java

    mybatis快速入门到精通 十年项目开发经验,主要从事java相关的开发,熟悉各种mvc开发框架. 王振伟 ¥18.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 A ...

  7. MyBatis快速入门——第三章、DML语句操作

    MyBatis快速入门--第三章.DML语句操作 目录 在接口类中添加[UsersMapper.java] 修改[com.item.mapper.UsersMapper.] [action.java] ...

  8. Java学习的快速入门:10行代码学JQuery

    生活在快速发展时代的我们,如果不提速可能稍不留神就被时代淘汰了.快节奏的时代成就了快餐,亦成就了速成教育.尤其是身处互联网行业的我们,更新换代的速度更是迅速,快速掌握一门技术已经成为潮流趋势.怎样才能 ...

  9. MyBatis快速入门及深入

    目录: 1.搭建MyBatis环境 2.配置文件 3.映射文件 4.CURD操作[入门] 5.工具类CURD 6.基于Mapper接口CURD 7.拼接符 8.动态SQL 9.关联映射与查询方案 OR ...

  10. Mybatis快速入门的代码实现及报错处理解决org.apache.ibatis.exceptions.PersistenceException

    开发步骤: 创建普通的maven项目,导入mybatis坐标和其他的相关坐标 <!--mybatis坐标--> <dependency><groupId>org.m ...

最新文章

  1. API和schema开发过程问题汇总
  2. 你的机器人女友到了,请签收
  3. VTK:高亮选择动画用法实战
  4. 怎么下载haarcascade_frontalface_default.xml
  5. 织梦点击数或者其他数值过【千】过【万】过【亿】的写法
  6. EasyUI学习笔记8:MIS开发利器_ datagrid插件(下)(终结篇)
  7. 【codeforces 239B】Easy Tape Programming
  8. 深入浅出VC++串口编程--短信应用开发
  9. 五大软件设计原则学习笔记5——依赖倒置原则
  10. javascript基础知识总结
  11. 阿里云云计算 48 云安全中心
  12. c语言仿ce内存搜索工 源代码_仿CE内存搜索工具的全部功能
  13. ubuntu下mingw32交叉编译环境搭建
  14. android框架xUtils使用介绍
  15. 阿里云盘登录空白问题解决
  16. 十一新疆之旅中邂逅的一首诗《黄河,母亲之河》
  17. 静态网页设计课后练习
  18. 前端Mocha+Chai单元测试
  19. Floorplan后端概念合集
  20. 复旦java_复旦大学

热门文章

  1. dll文件下载安装网站
  2. 计算机应用基本技能试题,计算机应用基本技能.doc
  3. 实现海康监控视频播放(录像回放)(抓拍,录像等功能)
  4. 快速使用Android串口
  5. GeoGebra入门之一分钟制作光的反射动态仿真模拟课件
  6. vim 寄存器 操作_vim操作技巧
  7. RPG 游戏数值系统—2
  8. 搜狗音乐爬虫下载python
  9. qq音信点亮最全说明
  10. Kafka的生产者,消费者JavaApi操作实例