欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【Mybatis学习路线】day01Mybatis概述

程序员文章站 2022-03-26 19:26:12
目录1.1Mybatis概念1.2Mybatis的基本使用1.1Mybatis概念什么是mybatis?MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。基本信息:MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及...

1.1Mybatis概念

  1. 什么是mybatis?

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
基本信息:
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。 [1]

  1. 持久化:数据从瞬时状态变为持久状态
  2. 持久层:完成持久化工作的代码块。–dao层
  3. Mybatis的作用:Mybatis就是帮助程序猿将数据存入数据库中,和从数据库中取数据。
  4. Mybatis和传统JDBC的比较:
    传统的jdbc操作:有很多重复代码块。比如:数据取出时的封装。数据库建立连接等等。通过框架可以减少重复代码,提高开发效率。
  5. Mybatis是一个半自动化的ORM框架。O–object,R–relationship,M–mapping.
  6. Mybatis的功能:
    Mybatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。Mybatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。

1.2Mybatis的基本使用

1.准备mybatis基本的jar包
asm-3.3.1.jar
cglib-2.2.2.jar
commons-logging-1.1.1.jar
commons-logging-1.2.jar
javassist-3.17.1-GA.jar
log4j-1.2.17.jar
log4j-api-2.0-rc1.jar
log4j-core-2.0-rc1.jar
mybatis-3.2.7.jar
slf4j-api-1.7.5.jar
slf4j-log4j12-1.7.5.jar
数据库连接包:
mysql-connector-java-8.0.19.jar
PS:mybatis所有版本的jar包都在官网上可以找到
官网地址:https://github.com/mybatis/mybatis-3/releases
本博客使用的3.2.7版本。可能有的地区在官网上下载比较慢,容易出现断网。可以私信找我要哦。
也可以自己搭个*,谷歌浏览器的setupVpn插件就很好
2.mybatis基本配置文件

<?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"/>    
			  <property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT%2B8"/>        
			  <property name="username" value="root"/>        
			  <property name="password" value=""/>      
		  </dataSource>    
	  </environment>  
  </environments>  
  <mappers>    
  	<mapper resource="net/xyz/entiy/user.mapper.xml"/>  
  </mappers> 
</configuration>

这个地方的主要功能就是配置数据库的四大参数。之后你才可以连接上数据库。
3.得到SqlSessionFactory,以及通过SqlSessionFactory得到SqlSession

public class MybatisUtil {
    public static SqlSessionFactory getSqlSessionFactory() throws IOException {
    	String resource = "mybatis.config..xml"; 
    	InputStream inputStream = Resources.getResourceAsStream(resource); 
    	SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    	return sqlSessionFactory;
    }
    public static SqlSession getSession() throws IOException {
    	SqlSessionFactory sqlSessionFactory =getSqlSessionFactory();
    	SqlSession sqlSession =sqlSessionFactory.openSession();
    	return sqlSession;
    }
}

4.创建实体类

public class User {
	private int id;
	private String username;
	private int userage;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public int getUserage() {
		return userage;
	}
	public void setUserage(int userage) {
		this.userage = userage;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", username=" + username + ", userage=" + userage + "]";
	}
    
}

6.编写sql语句的映射文件

<?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="net.xyz.entiy.UserMapper">  
	<select id="selectUser" resultType="net.xyz.entiy.User">    
	  select * from user where id = #{id}  
	</select> 
</mapper>

7.由mybatis框架向数据库中查询出一个对象

public class Test {
	public static void main(String[] args) {
		try {
			SqlSession sqlSession=MybatisUtil.getSession();
			User user=sqlSession.selectOne("net.xyz.entiy.UserMapper.selectUser", 1);
			System.out.println(user.toString());
			sqlSession.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

本文地址:https://blog.csdn.net/qq_44867340/article/details/107392490

相关标签: # java框架