博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis 实例
阅读量:4930 次
发布时间:2019-06-11

本文共 7686 字,大约阅读时间需要 25 分钟。

确定依赖

mysql
mysql-connector-java
8.0.15
org.apache.logging.log4j
log4j
2.11.2
pom
org.mybatis
mybatis
3.5.1
junit
junit
4.11
test

确定目前的目录结构

2019-04-09-22-54-30------

编写log4j配置文件

编写log4j配置文件

在resource目录下新建log4j.xml文件

log4j/log4j2Logs
%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %l - %m%n
%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %C.%M - %m%n
20MB
DEBUG
${basePath}/all.log
${basePath}/%d{yyyy-MM}/all-%d{yyyy-MM-dd}-%i.log.gz
50
${basePath}/info.log
${basePath}/%d{yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log.gz
10
${basePath}/warn.log
${basePath}/%d{yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log.gz
10
${basePath}/error.log
${basePath}/%d{yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log.gz
10
DEBUG

新建mybatis配置文件

在resource目录下新建mybatis-config.xml配置文件

构建SqlSessionFactory

根据配置文件构建出sql 会话的产生工厂

package com.ming;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.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;import java.io.IOException;import java.io.InputStream;/** * @author ming * 构建SqlSessionFactory * 由于数据库连接是宝贵的,需要对数据库连接统一管理,所以使用单例进行管理 * 这里的单利使用的双重锁 * SqlSessionFactory为线程不安全类型需要加锁,确保同一时刻,只有一个线程可以使用该对象 */public class SqlSessionFactoryUtil {    /**     * SqlSessionFactory对象     */    private static SqlSessionFactory sqlSessionFactory = null;    /**     * 类线程锁     */    private static final Class CLASS_LOCK = SqlSessionFactoryUtil.class;    /**     * 日志管理类     */    private static final Logger logger = LogManager.getLogger();    /**     * 单例     */    private SqlSessionFactoryUtil(){    }    /**     * @return SqlSessionFactory     * 初始化SqlSessionFactory对象     */    public static SqlSessionFactory initSqlSessionFactory(){        // 配置文件        String resource = "mybatis-config.xml";        // 输出流        InputStream inputStream = null;        try{            // 获得配置文件输入流            inputStream = Resources.getResourceAsStream(resource);        }catch (IOException e){            // 错误写入配置文件中            logger.error(e);        }        // 即类锁 采用最小同步快的方式        if(sqlSessionFactory == null) {            // 此处排队            synchronized (CLASS_LOCK) {                // 多线程情况下唯一的获取工厂对象                sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);            }        }        return sqlSessionFactory;    }    /**     * 打开SqlSession     * @return SqlSession     */    public static SqlSession openSqlSesion(){        // 判空处理        if(sqlSessionFactory == null){            initSqlSessionFactory();        }        return sqlSessionFactory.openSession();    }}

构建POJO

package com.ming;public class role {    private int id;    private String role_name;    private String note;    public role(){    }    public void setId(int id) {        this.id = id;    }    public void setRole_name(String role_name) {        this.role_name = role_name;    }    public void setNote(String note) {        this.note = note;    }    public int getId() {        return id;    }    public String getRole_name() {        return role_name;    }    public String getNote() {        return note;    }}

编写配置文件

package com.ming;public class role {    private int id;    private String role_name;    private String note;    public role(){    }    public void setId(int id) {        this.id = id;    }    public void setRole_name(String role_name) {        this.role_name = role_name;    }    public void setNote(String note) {        this.note = note;    }    public int getId() {        return id;    }    public String getRole_name() {        return role_name;    }    public String getNote() {        return note;    }}

更改mybatis配置文件

根据映射定义接口

package com.ming;import org.apache.ibatis.annotations.Param;import javax.management.relation.Role;public interface RoleMapper {    /**     * @param id     * @return     */    public Role getRole(int id);    /**     * @param id     * @return     */    public int deleteRole(int id);    /**     * @param role     * @return     */    public int insertRole(Role role);}

最后编写应用类

<%@ page import="org.apache.ibatis.session.SqlSession" %><%@ page import="com.ming.SqlSessionFactoryUtil" %><%@ page import="com.ming.RoleMapper" %><%@ page import="com.ming.Role" %>

Hello World!

<% SqlSession sqlSession = null; try{ sqlSession = SqlSessionFactoryUtil.openSqlSesion(); RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class); Role role = new Role(); role.setRole_name("name"); role.setNote("note"); roleMapper.insertRole(role); roleMapper.deleteRole(1); sqlSession.commit(); }catch (Exception e){ e.printStackTrace(); sqlSession.rollback(); }finally { if(sqlSession != null){ sqlSession.close(); } }%>

1554124784598.remmina-2019-4-10-16-13-31.157039

1319984-20190413011818886-871118681.jpg

转载于:https://www.cnblogs.com/melovemingming/p/10699561.html

你可能感兴趣的文章
Appium python unittest pageobject如何实现加载多个case
查看>>
Yaf--个人封装yaf的框架+swoole+elasticsearch(Window+linux版)
查看>>
Java中的try catch finaly先后调用顺序
查看>>
使用java列举所有给定数组中和为定值的组合
查看>>
hat linux下vnc的安装
查看>>
Perl Nmap处理脚本
查看>>
XGboost
查看>>
1013. Battle Over Cities
查看>>
css 各单位 距离比较
查看>>
Foundation框架: 8.OC中的集合类之二 - NSMutableArray的基本认识
查看>>
phpExcel大数据量情况下内存溢出解决
查看>>
Git 缓存区
查看>>
SQL Server索引的维护 - 索引碎片、填充因子 <第三篇>
查看>>
利用ServiceWorker实现页面的快速加载和离线访问
查看>>
10款最好用的移动web开发工具
查看>>
进程与线程
查看>>
【Spring】web开发 javaConfig方式 图解
查看>>
【Ubuntu 16】深入Ubuntu文件系统
查看>>
一分钟git hooks 钩子自动部署
查看>>
windows server 2008 wamp安装报000F15A0解决方法
查看>>