1:新建maven项目,file->project->maven

2:在建好的maven项目中,打开pom.xml文件,加入mybatis所需要的依赖:

<!--    mybatis核心包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<!-- java连接数据库-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!--    单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>

3:由于涉及到静态资源的导出问题,故需要在pom.xml中加入如下代码

<!--    静态资源导出问题-->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>

4:由于未涉及到spring,springmvc等,故三层架构先建立一层,也就是dao层(数据层),在dao层建立一个接口(userMapper),然后再新建一个userMapper.xml文件,方便动态代理模式的使用

5:在mysql中建立一张用户表(user),包含id,name,pwd等三个简单字段

6:在建立一个JavaBean,建立一个pojo包,包中建立一个user实体类,与数据库中的user表对应。如下所示:

public class User {
private Integer Id;
private String name;
private String pwd;

public User() {
}

public User(Integer id, String name, String pwd) {
Id = id;
this.name = name;
this.pwd = pwd;
}

public User(String name, String pwd) {
this.name = name;
this.pwd = pwd;
}

public Integer getId() {
return Id;
}

public void setId(Integer id) {
Id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getPwd() {
return pwd;
}

public void setPwd(String pwd) {
this.pwd = pwd;
}

@Override
public String toString() {
return "User{" +
"Id=" + Id +
", name='" + name + '\'' +
", pwd='" + pwd + '\'' +
'}';
}
}

7:准备工作完毕,下面需要建立一些xml文件和properties文件:

8:在resource包下建立database.properties文件(作用是为了连接数据库)以及mybatis.xml文件(mybatis核心配置文件)

database.properties文件:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql:///mybatis?useSSL=false&useServerPrepStmts=true&useUnicode=true&characterEncoding=utf-8
username=root
password=ztb

mybatis.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>
<!--数据库的资源路径-->
<properties resource="db.properties"></properties>
<!-- 别名-->
<typeAliases>
<package name="com.ztb.pojo"/></typeAliases>

<environments default="mysql">
<environment id="mysql">
<!-- 事务交给程序员来做-->
<transactionManager type="JDBC"></transactionManager>
<!-- mybatis中默认的连接池-->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>

</environment>
</environments>
<!-- 注册usermapper-->
<mappers>
<mapper class="com.ztb.dao.UserMapper"></mapper>
</mappers>
</configuration>

9:在userMapper接口处写访问数据库的增删改查方法,方便userMapper.xml调用。(注意:接口和xml文件的名字一定要一样)

public interface UserMapper {
//查询所有用户
List<User> seleteAll();

//根据Id查找用户
User selectById(int id);
//增加用户
int addUser(User user);
//删除用户
int deleteById(int id);
// 更新用户
int update(User user);
}

10:在userMapper中写下相应的增删改查语句。

<?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.ztb.dao.UserMapper">

<select id="seleteAll" resultType="com.ztb.pojo.User">
select * from mybatis.user
</select>

<select id="selectById" resultType="com.ztb.pojo.User" parameterType="int">
select * from mybatis.user where id= #{id}
</select>

<insert id="addUser" parameterType="com.ztb.pojo.User">
insert into mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd})
</insert>

<delete id="deleteById" parameterType="int">
delete from mybatis.user where id=#{id}
</delete>

<update id="update" parameterType="com.ztb.pojo.User">
update mybatis.user set name=#{name},pwd=#{pwd} where id=#{id};
</update>
</mapper>

11:至此,一切准备工作完毕,下面开始测试增删改查

12:在test文件下新建测试类:

public class Test1 {
SqlSession sqlSession=null;

@Before
public void Before1() throws IOException {
InputStream inputStream = Resources.getResourceAsStream("mybaits.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
sqlSession = sqlSessionFactory.openSession();

}
@After
public void after(){
sqlSession.close();
}

@Test
public void test11() throws IOException {

UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
List<User> users = userMapper.seleteAll();
for (User user : users) {
System.out.println(user);
}
}
@Test
public void test12(){
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.selectById(2);
System.out.println(user);

}
@Test
public void test13(){
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int i = mapper.addUser(new User(8,"张三", "123456"));
sqlSession.commit();
System.out.println(i);

}
@Test
public void test14(){
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int i = mapper.deleteById(8);
sqlSession.commit();
System.out.println(i);

}
@Test
public void test15(){
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int i = mapper.update(new User(0,"张三","111111"));
sqlSession.commit();
System.out.println(i);

}
}

Mybatis的使用(1)的更多相关文章

  1. 【分享】标准springMVC+mybatis项目maven搭建最精简教程

    文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...

  2. Java MyBatis 插入数据库返回主键

    最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...

  3. [原创]mybatis中整合ehcache缓存框架的使用

    mybatis整合ehcache缓存框架的使用 mybaits的二级缓存是mapper范围级别,除了在SqlMapConfig.xml设置二级缓存的总开关,还要在具体的mapper.xml中开启二级缓 ...

  4. 【SSM框架】Spring + Springmvc + Mybatis 基本框架搭建集成教程

    本文将讲解SSM框架的基本搭建集成,并有一个简单demo案例 说明:1.本文暂未使用maven集成,jar包需要手动导入. 2.本文为基础教程,大神切勿见笑. 3.如果对您学习有帮助,欢迎各种转载,注 ...

  5. mybatis plugins实现项目【全局】读写分离

    在之前的文章中讲述过数据库主从同步和通过注解来为部分方法切换数据源实现读写分离 注解实现读写分离: http://www.cnblogs.com/xiaochangwei/p/4961807.html ...

  6. MyBatis基础入门--知识点总结

    对原生态jdbc程序的问题总结 下面是一个传统的jdbc连接oracle数据库的标准代码: public static void main(String[] args) throws Exceptio ...

  7. Mybatis XML配置

    Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...

  8. MyBatis源码分析(一)开篇

    源码学习的好处不用多说,Mybatis源码量少.逻辑简单,将写个系列文章来学习. SqlSession Mybatis的使用入口位于org.apache.ibatis.session包中的SqlSes ...

  9. (整理)MyBatis入门教程(一)

    本文转载: http://www.cnblogs.com/hellokitty1/p/5216025.html#3591383 本人文笔不行,根据上面博客内容引导,自己整理了一些东西 首先给大家推荐几 ...

  10. MyBatis6:MyBatis集成Spring事物管理(下篇)

    前言 前一篇文章<MyBatis5:MyBatis集成Spring事物管理(上篇)>复习了MyBatis的基本使用以及使用Spring管理MyBatis的事物的做法,本文的目的是在这个的基 ...

随机推荐

  1. nginx反向代理获取用户真实ip

    nginx做反向代理时,默认的配置后端获取到的ip都是来自于nginx,如何转发用户的真实ip到后端程序呢?如是是java后端,用request.getRemoteAddr();获取到的是nginx的 ...

  2. 75. Sort Colors - LeetCode

    Question 75. Sort Colors Solution 题目大意: 给一个数组排序,这个数组只有0,1,2三个元素,要求只遍历一遍 思路: 记两个索引,lowIdx初始值为0,highId ...

  3. 腾讯产品快速尝鲜,蓝鲸智云社区版V6.1灰度测试开启

    这周小鲸悄悄推送了社区版V6.1(二进制部署版本,包含基础套餐.监控日志套餐),没过一天就有用户来问6.1的使用问题了.小鲸大吃一鲸,原来你还是爱我的. ![请添加图片描述](https://img- ...

  4. JAVA - 启动线程有哪几种方式

    JAVA - 启动线程有哪几种方式 一.继承Thread类创建线程类 (1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务.因此把run()方法称为执行 ...

  5. Typora使用手册(小白入门级)

    Typora软件的简单使用 1.简介 Typora是一款支持Markdown语法的文档编辑器      特点:功能强大.画面极简. 下载地址:https://typoraio.cn/ 2.基础设置 偏 ...

  6. ExtJS配置TabPanel的鼠标右键菜单(ContextMenu)功能

    更新记录 2022年6月14日 发布. 2022年6月13日 初稿. TabPanel的鼠标右键菜单(ContextMenu)功能介绍 开源的TabPanel组件很少做到拖拽调整tab顺序功能的,支持 ...

  7. c++可视化性能测试

    阅读前注意 本文所有代码贴出来的目的是帮助大家理解,并非是要引导大家跟写,许多环境问题文件问题没有详细说明,代码也并不全面,达不到跟做的效果.建议直接阅读全文即可,我在最后会给出详细代码地址,对源代码 ...

  8. SAP Smart Form 无法通过程序自定义默认打印机问题解决

    *&---------------------------------------------------------------------* *& Form FRM_SET_PRI ...

  9. python+requests+yaml实现接口自动化用例(二)---升级版

    一.前言:前面一段时间封装的接口自动化测试框架用了一段时间发现还是有很多弊端的,目前又改良了一下,可以说整体思路全都推翻了,功能比之前强大许多,有兴趣的可以私信我单独交流,希望共同学习进步! 二.项目 ...

  10. HMS Core音频编辑服务3D音频技术,助力打造沉浸式听觉盛宴

    2022年6月28日,HDD·HMS Core.Sparkle影音娱乐沙龙在线上与开发者们见面.HMS Core音频编辑服务(Audio Editor Kit)专家为大家详细分享了基于分离的3D音乐创 ...