Java Mybatis框架入门(一 )(第一个mybatis程序)

Mybatis

1. 简介:
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

2. 优势

  • jdcb工具:
    jdbc–> 自定义工具类 -->JdbcTemplate
    编写sql => 设置参数 => 执行sql => 封装数据
    工具: 采用sql语句和Java代码高耦合的方式实现数据处理.

  • hibernate框架:
    全自动全映射的ORM框架.主旨:消除sql用跟数据库无关的hql语言来代替.
    javabean => [编写sql => 设置参数 => 执行sql => 封装数据] => 数据记录
    框架: 采用hql和自动封装的形式实现数据处理. 希望保留sql提高灵活性.

  • mybatis框架:
    半自动的持久层框架.
    javabean => [编写sql(配置方式) => 设置参数 => 执行sql => 封装数据] => 数据记录
    框架: 通过配置的形式让程序员提供sql,做到和java代码解耦.实现数据处理

    具体分析

3. 第一个mybatis程序

  • 导入jar文件
    mybatis-3.4.5.jar
    mysql-connector-java-5.1.7-bin.jar

在这里插入图片描述

  • 创建数据表对应的pojo类
package com.mybatis.pojo;

public class Student {
	
		private Integer id;
		private String name;
		private String email;
		private String cls;
		
		public Integer getId() {
			return id;
		}
		public void setId(Integer id) {
			this.id = id;
		}
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public String getEmail() {
			return email;
		}
		public void setEmail(String email) {
			this.email = email;
		}
		public String getCls() {
			return cls;
		}
		public void setCls(String cls) {
			this.cls = cls;
		}
		@Override
		public String toString() {
			return "Student [id=" + id + ", name=" + name + ", email=" + email + ", cls=" + cls + "]";
		}

}

  • 在classpath下创建并编写mybatis-config.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.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="StudentMapper.xml"/>
  </mappers>
</configuration>
  • 在classpath下创建并编写XXXMapper.xml(XXX和pojo类名一致)
<?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="com.mybatis.dao.StudentMapper">
  <select id="selectStudent" resultType="com.mybatis.pojo.Student">
    select * from tbl_student where id = #{id}
  </select>
</mapper>
  • 通过mybatis-config.xml文件创建SqlSessionFactory,在通过SqlSessionFactory创建SqlSession对象
    然后使用SqlSession对象完成数据操作.

原始sql操作

	@Test
	public void testSelectStudent() throws IOException {
		Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
		SqlSession session = factory.openSession();
		try {
			//原始sql操作
			Student student = session.selectOne("com.mybatis.dao.StudentMapper.selectStudent", 1);
			System.out.println(student);
		} finally {
			session.close();
		}
	}

通过接口操作

public interface StudentMapper {

	public Student selectStudent(Integer id);
	
}

@Test
	public void testSelectStudent2() throws IOException {
		Reader reader = Resources.getResourceAsReader("mybatis-config.xml");

		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);

		SqlSession session = factory.openSession();

		try {
			//通过接口操作
			StudentMapper mapper = session.getMapper(StudentMapper.class);
			Student student = mapper.selectStudent(2);
			System.out.println(student);
		} finally {
			session.close();
		}

	}

4. (补充)通过log4j查看mybatis执行的sql

  • 将log4j.jar加入当前的运行环境
    在这里插入图片描述

  • log4j:
    在这里插入图片描述

  • 配置日志输出格式.

Logger logger = Logger.getLogger("log4j.xml");
logger.debug(mapper);
  • 输出结果
    在这里插入图片描述

作用:方便在项目调试中,将日志写入文件中。




总结:认识了mybatis,以及写的第一个mybaits程序,还有log4j日志的使用。

更新:
链接:Java Mybatis 框架入门(二)(了解全局配置文件)

博主:点赞的都是帅锅,美女哦!!!💕💕💕

  • 32
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 30
    评论
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值