MyBatis入门(学习笔记)

初识MyBatis

  1. MyBatis一个基于Java的持久层框架,也就是与数据库操作相关的框架。
  2. MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集
  3. 链接: MyBatis官方文档.

Maven项目配置MyBatis

1.在pom.xml文件内导入依赖

<dependencies>
		<!-- MyBatis框架依赖--> 
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.5.2</version>
		</dependency>
		<!--junit测试包--> 
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
		</dependency>
		<!--java连接mysql数据库依赖--> 
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.19</version>
		</dependency>
	</dependencies>

2.在resources文件夹下创建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.cj.jdbc.Driver"/>
        <!--url-->
        <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=Asia/Shanghai&amp;useSSL=true"/>
        <property name="username" value="数据库名称"/>
        <property name="password" value="数据库密码"/>
      </dataSource>
    </environment>
  </environments>
</configuration>

3.编写实体类与数据库相对应

package pojo;

public class User {
	private int id;
	private String uname;
	private String psw;
	
	public User() {
	}
	public User(int id, String uname, String psw) {
		this.id = id;
		this.uname = uname;
		this.psw = psw;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUname() {
		return uname;
	}
	public void setUname(String uname) {
		this.uname = uname;
	}
	public String getPsw() {
		return psw;
	}
	public void setPsw(String psw) {
		this.psw = psw;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", uname=" + uname + ", psw=" + psw + "]";
	}	
}

4.每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例。
采用XML配置文件来构建一个SqlSessionFactory实例

package utils;

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;

public class MybatisUtils {
	private static SqlSessionFactory sqlSessionFactory;
	//加载配置文件及构建SqlSessionFactory实例只需一次即可所以放在static代码块中
	static {
		try {
			String resource = "mybatis-config.xml";
			InputStream inputStream = Resources.getResourceAsStream(resource);
			sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public static SqlSession getSqlSession() {
		return sqlSessionFactory.openSession();
	}
}

5.编写接口来获得数据库里面的数据

package mapper;

import java.util.List;

import pojo.User;

public interface UserMapper {
	public List<User> getListUser();
}

6.接口实现类采用XML文件来代替,即不必在写获得数据库连接,预编译以及获得结果集等操作。并在在mybatis-config.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="mapper.UserMapper">
<!--id代表对应接口中的方法,写方法名即可-->
<!--resultType代表返回类型,即方法的返回类型,这里返回的是User-->
  <select id="getListUser" resultType="pojo.User">
  <!--查询语句-->
    select * from user
  </select>
</mapper>

在mybatis-config.xml配置文件中配置

<mappers>
    <mapper resource="mapper/UserMapper.xml"/>
  </mappers>

7.编写测试类测试

package mapper;

import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import pojo.User;
import utils.MybatisUtils;

public class UserMappertest {
  @Test
  public void test() {
  //在MybatisUtils获得sqlsession对象
  	SqlSession sqlSession = MybatisUtils.getSqlSession();
  	UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
  	List<User> list = userMapper.getListUser();
  	for (User user : list) {
  		System.out.println(user);
  	}
  }
}

结果如下:

User [id=1, uname=西西, psw=123456]
User [id=2, uname=张三, psw=123456]
User [id=3, uname=李四, psw=123456]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值