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());
}
测试结果:

度盘:https://pan.baidu.com/s/1hNyfg0VbMVmAclnCdgWC2A 提取码: 7yvx
- Xmind步骤分析

一秋语述:本人仅入门程度,写此来记录成长历程,欢迎大佬来指正,悉听尊言。
天黑了该睡觉了,晚安唔西迪西 晚安玛卡巴卡 晚安依古比古 晚安汤姆布利波 晚安小点点 晚安叮叮车 晚安飞飞鱼 晚安小朋友们~♥