mybatis小白知音

一,mybatis简介。

1.MyBatis:

①是一个持久层的框架,mybatis框架和关系数据库进行交互,将数据持久化到关系数据中。

需要程序员自己编写sql,对于一些ORM框架(对象关系映射)一般是不需要程序员来编写sql

 *重点让程序员自己去灵活掌握sql,要对 sql进行优化比较容易让程序员自己掌握)。

③同时也对jdbc访问数据库的过程 进行了封装,对创建connection、创建statement、手动设置参数、结果集检索等进行封装。

④核心:

             1、输入映射,将java对象映射到statement中即sql语句的输入参数。

             2、输出映射,将sql语句执行的结果映射成java对象。

二,mybatis简单java项目入门案例(crmd)

环境搭建:

mybatis小白知音_第1张图片

数据库(mysql):

mybatis小白知音_第2张图片

     1.根据用户id查询一个用户信息

  ①配置SqlMapConfig.xml配置文件(在config目录下):






	
	
		
			
			
			
			
				
				
				
				
			
		
	
	
	
	

    此XML为mybatis的全局配置文件,配置了数据源、事务等运行环境,加载配置mapper.xml映射。

    使用mybatis-3-config.dtd约束xml。

       ②mapper.xml映射文件

                  早期ibatis的映射文件以表名命名,后期mybatis 映射文件命名方式为:表名Mapper.xml。。命名方式是不固定的。

                 映射文件使用mybatis-3-mapper.dtd

mybatis小白知音_第3张图片

*这里Mapper.xml命名为User.xml

代码:






③pojo

mybatis小白知音_第4张图片

代码:

package cn.itcast.mybatis.po;

import java.util.Date;

/**
 * 
 * 

Title: User

*

Description: 用户信息的po类

*

Company: www.itcast.com

* @author 传智播客 * @date 2020-12-12 * @version 1.0 */ public class User { private int id; private String username;// 用户姓名 private String sex;// 性别 private Date birthday;// 生日 private String address;// 地址 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 String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }

      resultType:将sql查询结果集映射成java对象,将多个列的值映射到一个对象中,需要定义的pojoresultType映射规则是sql查询列名和pojo的属性名必须一致方可完成映射。

sql:

mybatis小白知音_第5张图片

pojo属性:

mybatis小白知音_第6张图片

④完整的mapper.xml










SqlMapConfig.xml加载映射文件:






	
	
		
			
			
			
			
				
				
				
				
			
		
	

	
	
		
		

	


⑤代码实现。

package cn.itcast.mybatis.first;

import java.io.IOException;
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 org.junit.Test;

import cn.itcast.mybatis.po.User;

public class MybatisFirst {
	//根据用户id查询用户信息
	@Test
	public void testFindUserById() throws IOException{
		
		
		//mybatis全局配置文件
		String resource = "SqlMapConfig.xml";
		
		
		//根据mybatis全局配置文件构造一个流
		InputStream inputStream = Resources.getResourceAsStream(resource);
		
		
		//创建SqlSessionFactory
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		
		//创建SqlSession会话
		SqlSession sqlSession = sqlSessionFactory.openSession();
		

		// 使用sqlSession查询用户
		// 第一个参数:statement的id,前边要加namespace
		// 第二个参数:输入的参数对象值
		// selectOne用于返回单个对象,如果sql查询返回一个列表(多个对象),如果使用selectOne报错
		User user = sqlSession.selectOne("test.findUserById", 1);
		System.out.println(user);

		// 关闭sqlsession
		sqlSession.close();
		
	}
}
未完--------------------待续











你可能感兴趣的:(Dream,Home)