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. linux篇-Linux逻辑卷详解总结

    LVM是逻辑卷管理(Logical Volume Manager)的简称,它是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,与直接使用物理存储在管理上相比,提供了更好灵活性. LVM将存储 ...

  2. unity---脚本代码报错

    同版本编辑器在不同VS版本下会报错问题解决 解决方法 报错情况 解决方法 打开Unity --->Preferences--->External Tools然后点击:Regenerate ...

  3. 152-技巧-Power Query 快速合并文件夹中表格之自定义函数 TableXlsxCsv

    152-技巧-Power Query 快速合并文件夹中表格之自定义函数 TableXlsxCsv 附件下载地址:https://jiaopengzi.com/2602.html 一.背景 在我们使用 ...

  4. 使用acme.sh自动申请、续期、部署免费的SSL证书

    参考文档:https://github.com/acmesh-official/acme.sh 一个使用纯shell操作的免费SSL证书申请部署工具. 免费的SSL证书由以下CA机构提供: ZeroS ...

  5. 每天一个 HTTP 状态码 206

    206 Partial Content 206 Partial Content 是当客户端请求时使用了 Range 头部,服务器端回复的响应,表示只响应一部分内容. 实例 请求: GET /favor ...

  6. CA周记 - Build 2022 上开发者最应关注的七大方向主要技术更新

    一年一度的 Microsoft Build 终于来了,带来了非常非常多的新技术和功能更新.不知道各位小伙伴有没有和我一样熬夜看了开幕式和五个核心主题的全过程呢?接下来我和大家来谈一下作为开发者最应关注 ...

  7. 【原创】eNSP路由器启动#号问题排查

    1.删除拖出来的设备,重新拖出来一台---我用过[有时候好使] 2.确保Ensp的设置-工具-Virtual Box安装目录是否正确--我也遇到过[尤其是卸载掉Virtual Box重装之后] 3.确 ...

  8. 【freertos】011-信号量、互斥量及优先级继承机制源码分析

    目录 前言 11.1 任务同步 11.2 信号量概念 11.3 二值信号量 11.3.1 二值信号量概念 11.3.2 优先级翻转 11.3.3 二值信号量运作机制 11.4 计数信号量 11.4.1 ...

  9. 数字化转型之数字资产知识库(springboot+es+vue+neo4j)

    前言 在数字化高度普及的时代,企事业机关单位在日常工作中会产生大量的文档,例如医院制度汇编,企业知识共享库等.针对这些文档性的东西,手工纸质化去管理是非常消耗工作量的,并且纸质化查阅难,易损耗,所以电 ...

  10. JavaScript做简单的购物车效果(增、删、改、查、克隆)

    比如有时候遇到下面这种情况,点击加入购物车,然后在上方的购物车中动态的添加商品以及商品的信息,我们就可以通过JavaScript实现简单的这些操作. 首先我们需要在html文档中,通过css对页面的布 ...