mybatis框架

mybatis框架

简介:mabatis是一个持久层(DAO)框架,其作用是操作数据库的增删改查。Mybatis框架能够让我们以最少的代码就可以操作数据库,从而提高开发的效率

mybatis配置流程

获得数据库连接

1. 导入包(使用任何框架都需要做的事情) 先下载好mybatis框架(https://github.com/mybatis/mybatis-3),然后创建一个普通的java项目并导入下载好的jar

2. 创建总配置文件,文件名随便取,但建议要见名知意(这里取mybatis.xml)。在项目的src下面创建文件 mybatis.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!-- dtd约束 -->
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- 根元素: 用于配置mybatis -->
<configuration>
  <!-- 配置mybatis的运行环境 ,可以配置多个环境,但是一次只能使用一个 
  
  	default属性 : 当前使用的环境 ,使用下面环境的id 即可  -->
  <environments default="dev_mysql">
  	<!-- 环境配置  id 属性,就是当前环境的表示 -->
    <environment id="dev_mysql">
      <!-- 配置MyBatis事务管理器 
      	type属性 :  事物类型
      		JDBC  使用事务(正常提交commit,异常回滚事务 rollback) 默认
      		MANAGED : 不使用事务 
        -->
      <transactionManager type="JDBC"/>
      <!-- 配置MyBatis的数据源
      	type : 配置连接池
      		POOLED :mybatis内置的一个连接池(默认)
      		后期都交给spring管理了,配置 dbcp连接池,阿里巴巴的 druid连接池
       -->
      <dataSource type="POOLED">
      	<!-- 连接数据库的操作 -->
      	<!-- 数据库驱动 -->
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <!-- 连接数据库的url -->
        <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
        <!-- 连接数据库账号 -->
        <property name="username" value="root"/>
        <!-- 连接数据库密码 -->
        <property name="password" value="admin"/>
      </dataSource>
    </environment>
  </environments>
  <!-- 配置映射文件 -->
  <mappers>
  	<!-- 配置包扫描映射文件 -->
  	<!-- <package name=""/> -->
  	<!-- 配置单个映射文件 -->
    <mapper resource="UserMapper.xml"/>
  </mappers>
</configuration>

3. 创建一个MybatisUtil工具类(获取操作对象)

//MyBatisUtil工具类的作用主要用于:读取配置文件,
//创建工厂对象,提供创建SqlSession数据库操作对象的方法
package cn.zj.mybatis.util;


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;

public class MyBatisUtil {
	private MyBatisUtil() {
	}
	
	//SqlSessionFactory 会话工厂对象
	private static SqlSessionFactory  factory;
	//类加载到JVM中就立马执行static代码块,并且只会执行一次
	static {
		//资源文件
		String resource = "mybatis-config.xml";
		//try(){}catch(Exception e){} try的圆括号内部能够自动释放/关闭资源
		try(InputStream inputStream = Resources.getResourceAsStream(resource)) {
			//创建SqlSessionFactory 对象
			factory = new SqlSessionFactoryBuilder().build(inputStream);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
	/**
	 * 创建SqlSession对象
	 * @return SqlSession对
	 */
	public static SqlSession openSession() {
		//创建Session对象
		SqlSession session = factory.openSession();
		return session;
	}

}


需求:插入数据到数据库 创建一个映射接口

package cn.zj.mybatis.mapper;

import cn.zj.mybatis.pojo.User;

/*
 * 使用MyBatis的动态代理开发编写代码遵循四个原则
 *  1.映射文件的namespace命名空间的值必须是对应接口的全限定名
	2.映射文件的对应功能 id值必须等于映射接口中方法的名称
	3.映射文件的参数类型必须和接口中方法的参数类型一致
	4.映射文件查询的返回结果类型必须和接口的方法的返回数据类型一致,
		DML操作返回的受影响的行数,除外
 */
public interface UserMapper {

	int insertUserInfo(User u);
}


4. 创建一个映射文件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">
<!-- 配置映射
namespace : 命名空间(通俗说法: 给当前映射文件的唯一标识:起一个唯一的名字)	
 -->
<mapper namespace="com.mybatis.pojo.UserMapper">
	<!-- 新增操作
		id: 当前功能的唯一标识,和接口方法同名
		parameterType : 参数的类型
		useGeneratedKeys:是否返回数据库生成的主键 true/false否 
		keyProperty : 数据库主键对应java的pojo对象的属性
		keyColumn : 数据表的主键列明
	 -->
	<insert id="insertUserInfo" parameterType="User" 
		useGeneratedKeys="true"
		keyProperty="id"
		keyColumn="id"
	></mapper>

5. 创建与数据库对应的实体类

package cn.zj.mybatis.pojo;

public class User {
	private Integer id;
	private String name;
	private String password;

	
	public User() {
		super();
	}

	public User(Integer id, String name, String password) {
		super();
		this.id = id;
		this.name = name;
		this.password = password;
	
	}

	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 getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	

	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", password=" + password + "]";
	}
	
}


6. 编写测试插入数据代码

	
	//插入操作
// 新增操作
@Test
public void testInsert() throws Exception {
	//1.创建SqlSession操作对象
	SqlSession session = MyBatisUtil.openSession();
	
	//2.创建UserMapper接口的代理对象
	UserMapper userMapper = session.getMapper(UserMapper.class);

	
	//3.创建用户对象
	User user = new User(null, "赵云", "12345");
	
	//4.执行UserMapper的插入操作
	userMapper.insertUserInfo(user);
	
	//5.提交事务
	session.commit();
	
	//6.关闭session
	session.close();

}

以上是mybatis框架的入门案例,对数据库进行了添加操作,比较简单。理解了再自己尝试编写对数据库删改查的操作就不难了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值