一、创建全局文件

<?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> <!--默认的数据库配置 修改成mysql 之前是 development-->
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/qy100?CharacterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments> <!--mybatis 是使用
1.简单的xml 或者
2.注解来配置和映射原生类型,接口和java的pojo(普通老式java对象)-->
<!--为数据库中记录的-->
<!--这里就是将在dao层下创建的DeptMapper.xml映射文件 加入到全局文件中 -->
<mappers>
<mapper resource="com/aaa/dao/DeptMapper.xml"/>
</mappers> </configuration>

二、创建实体类

package com.aaa.entity;

public class Dept {
private int id;
private String ename;
private String job;
private double sal; public Dept(int id, String ename, String job, double sal) {
this.id = id;
this.ename = ename;
this.job = job;
this.sal = sal;
} public Dept(int id, String ename) {
this.id = id;
this.ename = ename;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getEname() {
return ename;
} public void setEname(String ename) {
this.ename = ename;
} public String getJob() {
return job;
} public void setJob(String job) {
this.job = job;
} public double getSal() {
return sal;
} public void setSal(double sal) {
this.sal = sal;
} @Override
public String toString() {
return "Dept{" +
"id=" + id +
", ename='" + ename + '\'' +
", job='" + job + '\'' +
", sal=" + sal +
'}';
}
}

三、在DAO层中创建  mybatis-mapper.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"> <!--mybatis的原生接口。--> <!--工作空间就是
1.我在dao层下 创建的DeptMapper 文件
2.或者是对应的 dao 层中的接口。
-->
<mapper namespace="com.aaa.dao.DeptMapper">
<select id="selectDept" resultType="com.aaa.entity.Dept">
select * from dept;
</select> <delete id="deleteDept" parameterType="com.aaa.entity.Dept">
delete from dept where id=5;
</delete> <insert id="insertDept" parameterType="com.aaa.entity.Dept">
insert into dept (ename,job,sal) values("武王嬴荡","秦王",1200);
</insert> <update id="updateDept" parameterType="com.aaa.entity.Dept">
update dept set ename="嬴政" ,job="千古第一帝" where id=5;
</update> </mapper>

四、测试

package com.aaa.test;

import com.aaa.entity.Dept;
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 java.io.IOException;
import java.io.InputStream;
import java.util.List; /* 测试 mybatis原生的接口
* 1.Resources:资源类
* 2.SqlSessionFactoryBuilder:构建器
* 3.SqlSessionFactory :会话工厂
*
* */
public class Test {
public static void main(String[] args) throws IOException {
//1.加载全局文件和配置文件 String resource="mybatis-config.xml"; InputStream is = Resources.getResourceAsStream(resource);
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is); //2.开启会话
SqlSession sqlSession = ssf.openSession();
List<Dept> deptList = sqlSession.selectList("com.aaa.dao.DeptMapper.selectDept"); for (Dept dept:deptList
) {
System.out.println("部门信息"+dept);
}
//2.关闭会话
sqlSession.close();
}
}

五、封装一个单列的会话工厂。

package com.aaa.util;

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 java.io.IOException;
import java.io.InputStream;
// 懒汉模式 节省资源
public class Factory {
private static SqlSessionFactory ssf=null; static{
String resource="mybatis-config.xml";
InputStream is=null; try {
is = Resources.getResourceAsStream(resource);
ssf = new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
e.printStackTrace();
}
} public static SqlSessionFactory getSsf(){
return ssf;
}
public static SqlSession getSqlSession(){
return ssf.openSession();
}
}

六、测试

package com.aaa.test;

import com.aaa.entity.Dept;
import com.aaa.util.Factory;
import org.apache.ibatis.session.SqlSession; import java.util.List;
/*
* 1.增删改查 注意!执行增删改的操作时 查询语句只能放在后面执行 否则报错!
* 2.进行增删改操作 需要进行提交!
*
* */
public class Test02 {
public static void main(String[] args) {
//利用单列的工厂类 获得连接
SqlSession sqlSession = Factory.getSqlSession(); //1.增加
sqlSession.insert("com.aaa.dao.DeptMapper.insertDept");
sqlSession.commit();
//2.修改
sqlSession.update("com.aaa.dao.DeptMapper.updateDept");
sqlSession.commit();
//3.删除
sqlSession.delete("com.aaa.dao.DeptMapper.deleteDept");
sqlSession.commit(); //4.查询
List<Dept> deptList = sqlSession.selectList("com.aaa.dao.DeptMapper.selectDept"); for (Dept dept:deptList
) {
System.out.println("部门信息"+dept);
}
//关闭会话
sqlSession.close();
}
}

mybatis 原生写法创建项目的更多相关文章

  1. 创建以mybatis为基础的web项目(2)mabitis中的一对一关系项目实战

    mabitis中的一对一关系项目实战: 1.首先根据创建以mybatis为基础的web项目(1)中的流程将web项目部署好 打开IDE,建立web工程 在lib下面粘贴mybatis的jar,log4 ...

  2. 搭建Spring + SpringMVC + Mybatis框架之一(创建项目)

    创建项目 用maven管理项目很方便,不用手动下载jar包,直接在pom.xml配置文件中,maven可以帮助我们自动下载,非常方便 新建一个web project,添加maven支持就可以了,这样创 ...

  3. MUI框架-01-介绍-创建项目-简单页面

    MUI框架-01-介绍-准备-创建项目 从0开始快速高效学习 MUI 框架 官方文档:http://dev.dcloud.net.cn/mui/ui/ (1)MUI 介绍 MUI 是什么,解决了什么问 ...

  4. vue- Vue-Cli脚手架工具安装 -创建项目-页面开发流程-组件生命周期- -03

    目录 Vue-Cli 项目环境搭建 与 python 基础环境对比 环境搭建 创建启动 vue 项目 命令创建项目(步骤小多) 启动 vue 项目(命令行方式) 启动 vue 项目(pycharm 方 ...

  5. VUE创建项目

    Vue Cli项目搭建     vue项目需要自建服务器:node 什么是node: 用C++语言编写,用来运行JavaScript语言 node可以为前端项目提供server (包含了socket) ...

  6. MyBatis 源码分析-项目总览

    MyBatis 源码分析-项目总览 1.概述 本文主要大致介绍一下MyBatis的项目结构.引用参考资料<MyBatis技术内幕> 此外,https://mybatis.org/mybat ...

  7. ASP.NET+MVC入门踩坑笔记 (一) 创建项目 项目配置运行 以及简单的Api搭建

    哈喽各位 我又回来了! 前段时间研究了下ASP.NET,刚开始也是随便找网上的各种教程来看,但是鉴于本人技术有限,还是走了相当长的一段弯路的.所以我写下了这篇文章.希望各位刚刚入坑的ASP.NET开发 ...

  8. SSM保姆级从创建项目到使用,包括事务和设置回滚

    1. 简介 Spring 和 Mybaits整合 2. 创建项目 负责将代理类记性扫描,扫描的是Mapper接口所在的包,这个是mybatis提供的,所以会去找SqlSessionFactory 2. ...

  9. Hybird应用开发实践(一)使用原生/cordova混合项目

    最近准备尝试hybird开发原生应用,因为公司的项目本来就是原生开发的,所以准备选择cordova作为webview嵌入原生项目的开发方式.这里就以mac上整合ios项目为例. 1. 创建cordov ...

随机推荐

  1. 【LeetCode】402. Remove K Digits 解题报告(Python)

    [LeetCode]402. Remove K Digits 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http: ...

  2. WPF自定义界面WindowChrome

    WPF自定义界面WindowChrome 默认WPF的界面其实也还行,就是满足不了日渐增长的需求,界面还是需要有更高的自定义程度,包括标题栏也要能够塞下更多的操作控件. 默认窗口介绍 新建WPF项目, ...

  3. layedit赋值方法(layedit.setContent赋值时报错-ReferenceError: layedit is not defined)

    layedit.setContent赋值时报错 - ReferenceError: layedit is not defined 报错代码: 控制台报错信息 解决方法: 步骤: 1)先赋值: 2)在渲 ...

  4. Layui 的内置jquery 版本

    //layui-v2.4.5 的内置jquery 版本. console.log(layui.$.fn.jquery);//=> 1.12.3 可以使用内置jq的方法: 方法一: layui.u ...

  5. JDK中的BitMap实现之BitSet源码分析

    前提 本文主要内容是分析JDK中的BitMap实现之java.util.BitSet的源码实现,基于JDK11编写,其他版本的JDK不一定合适. 文中的图比特低位实际应该是在右边,但是为了提高阅读体验 ...

  6. 你还不了解SpringSecurity吗?快来看看SpringSecurity实战总结~

    SpringSecurity简介:   权限管理中的相关概念 主体 principal: 使用系统的用户或设备或从其他系统远程登录的用户等等,简单说就是谁使用系统谁就是主体. 认证 authentic ...

  7. SpringBoot集成Actuator监控管理

    1.说明 本文详细介绍Spring Boot集成Actuator监控管理的方法, 基于已经创建好的Spring Boot工程, 然后引入Actuator依赖, 介绍监控管理相关功能的使用. Sprin ...

  8. TortoiseGit使用ssh-keygen生成的私钥

    1.说明 使用TortoiseGit自带的PuTTY Key Generator工具, 把ssh-keygen生成的私钥转换为Putty使用的.ppk文件, 然后在拉取Git代码时, 加载对应的.pp ...

  9. 03.python封装与解构

    封装与结构 基本概念 t1 = 1, 2 print(type(t1)) # 什么类型 t2 = (1, 2) print(type(t2)) Python等式右侧出现逗号分隔的多值的时候,就会将这几 ...

  10. linux 之 命令提示符设置

    linux 命令提示符设置实际就是设置环境变量PS1的值. 参数说明 \d 显示时间,星期 月 日 \h 显示简写主机名,如默认主机名 localhost \t 显示24小时制时间, HH:MM:SS ...