Mybatis基础

Mybatis背景:MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

通俗的讲:MyBatis 是个持久层的框架,我们原来对数据库的 CRUD 操作采用的是原生的 JDBC 方式。

使用场景:增删改查

  • 一、搭建Mybatis的开发环境
  • 二、简单查询语句
  • 三、代码优化(封装)
第一章、环境搭建

所需开发工具:Eclipse、MySQL

所需架包和sql文件: 见页脚

一秋语述:如有版本不适,请在官网下载最新版本:http://www.mybatis.org/

步骤如下

1.创建web项目(勾选web.xml)

2.把两个架包放到Webcontent/lib下

3.在Java Resources/src下新建xml文件 mybatis-config.xml

4.在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>
 <!-- 定义很多环境,默认环境是 development -->
 <environments default="development">
 <!-- 定义一个名字叫 development 的环境 -->
 <environment id="development">
<!-- 事务管理采用的方式是 JDBC -->
<transactionManager type="JDBC" />
<!-- 数据源采用 POOLED 连接池方式 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/数据库名" />
<property name="username" value="数据库用户名(一般默认root)" />
<property name="password" value="数据库密码" />
</dataSource>
 </environment>
</environments>

<mappers>
 <!-- 扫描接口对应的 XXXMapper.xml 文件-->
<mapper resource="这里是接口映射全路径" />
</mappers>
</configuration>

5.接着在src下创建dao包 在dao包里分别创建接口和映射文件

注意:接口和映射文件名称尽量名字一样

6.之后复制一下代码到映射文件里

<?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.sh.dao.IMdpMapper">
	<select id="接口方法" resultType="返回的类型">
		这里sql语句
	</select>
	
</mapper>

注意:查询的标签是:select 添加:insert 修改:update 删除:delete

7.在IMdpMapper.java接口里写方法 例:getAll

8.在src里创建entity(实体类) 在entity包里创建与数据库对应的实体类(class)

9.创建MybatisUitl.java实体类进行封装代码 (源代码比较长,这个直接把代码复制进去就可以调用了)

package com.sh.util;

import java.io.IOException;

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 static String CONFIG_FILE = "mybatis-config.xml";
	private static SqlSessionFactory sessionFactory;
	private static ThreadLocal<SqlSession> threadLocal = new ThreadLocal<SqlSession>();
	/**
	 * 静态初始化块,完成创建唯一的 SqlSessionFactory 对象
	 */
	static {
		SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
		try {
			sessionFactory = builder.build(Resources.getResourceAsStream(CONFIG_FILE));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 线程安全地创建 SqlSession 对象
	 * 
	 * @return SqlSession 对象
	 */
	public static SqlSession getSqlSession() {
		SqlSession session = threadLocal.get();
		if (session == null) {
			session = sessionFactory.openSession();
			threadLocal.set(session);
		}
		return session;
	}

	public static void closeSqlSession() {
		SqlSession session = threadLocal.get();
		if (session != null) {
			session.close();
			threadLocal.set(null);
		}
	}
}

10.新建测试类进行测试

public static void main(String[] args) {
		// TODO 自动生成的方法存根
		SqlSession session = null;
		session = MyBatisUtil.getSqlSession();
		IMdpMapper mdao = session.getMapper(IMdpMapper.class);
		List<News> ls = mdao.getAll();
	for (News news : ls) {
		System.out.println("id:" + news.getNCODE() + " 标题:" + news.getTITLE() + " 时间:" + news.getSTITLE() + " 日期:"
				+ news.getPDATE() + " 部门:" + news.getNURL() + " 公众号:" + news.getSURL());
	}

测试结果:

sql文件直链: 下载

度盘:https://pan.baidu.com/s/1hNyfg0VbMVmAclnCdgWC2A 提取码: 7yvx

  • Xmind步骤分析

一秋语述:本人仅入门程度,写此来记录成长历程,欢迎大佬来指正,悉听尊言。

天黑了该睡觉了,晚安唔西迪西 晚安玛卡巴卡 晚安依古比古 晚安汤姆布利波 晚安小点点 晚安叮叮车 晚安飞飞鱼 晚安小朋友们~♥

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

'Beyond'

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值