【Mybatis 系列10-结合源码解析mybatis 执行流程】

【Mybatis 系列9-强大的动态sql 语句】

【Mybatis 系列8-结合源码解析select、resultMap的用法】

【Mybatis 系列7-结合源码解析核心CRUD配置及用法】

【Mybatis 系列6-结合源码解析节点配置objectFactory、databaseIdProvider、plugins、mappers】

【Mybatis 系列5-结合源码解析TypeHandler】

【Mybatis 系列4-结合源码解析节点typeAliases】

【Mybatis 系列3-结合源码解析properties节点和environments节点】

【Mybatis 系列2-配置文件】

【Mybatis 系列1-环境搭建】

第一篇教程, 就先简单地写个demo, 一起来认识一下mybatis吧。  

本文使用了maven(下次详解)。

一、Mybatis环境搭建及简单实例

1. 新建web项目

添加依赖包:mybatis包、数据库驱动包(我使用的是mysql)、日志包(我使用的是log4j),

由于我的是maven项目, 那么添加依赖包就简单了,直接在pom.xml添加依赖即可。

pom.xml:

 <dependencies>
<!-- 添加junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency> <!-- 添加log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency> <!-- 添加mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.6</version>
</dependency> <!-- 添加mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.12</version>
</dependency> </dependencies>

. 配置log4j, 配置mybatis

在classpath建立一个用于配置log4j的配置文件log4j.properties,再建立一个用于配置Mybatis的配置文件configuration.xml(文件可随便命名)。   

  

说一下configuration.xml:

 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE configuration
3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
5 <configuration>
6
7 <!-- 指定properties配置文件, 我这里面配置的是数据库相关 -->
8 <properties resource="dbConfig.properties"></properties>
9
10 <!-- 指定Mybatis使用log4j -->
11 <settings>
12 <setting name="logImpl" value="LOG4J"/>
13 </settings>
14
15 <environments default="development">
16 <environment id="development">
17 <transactionManager type="JDBC"/>
18 <dataSource type="POOLED">
19 <!--
20 如果上面没有指定数据库配置的properties文件,那么此处可以这样直接配置
21 <property name="driver" value="com.mysql.jdbc.Driver"/>
22 <property name="url" value="jdbc:mysql://localhost:3306/test1"/>
23 <property name="username" value="root"/>
24 <property name="password" value="root"/>
25 -->
26
27 <!-- 上面指定了数据库配置文件, 配置文件里面也是对应的这四个属性 -->
28 <property name="driver" value="${driver}"/>
29 <property name="url" value="${url}"/>
30 <property name="username" value="${username}"/>
31 <property name="password" value="${password}"/>
32
33 </dataSource>
34 </environment>
35 </environments>
36
37 <!-- 映射文件,mybatis精髓, 后面才会细讲 -->
38 <mappers>
39 <mapper resource="com/dy/dao/userDao-mapping.xml"/>
40 </mappers>
41
42 </configuration>

3. 开始写Demo

首先,在mysql数据库test1建立一张表user:

CREATE TABLE `test1` (
`id` int(11) NOT NULL,
`name` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
`password` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
`age` int(2) DEFAULT NULL,
`deleteflag` int(2) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

然后,开始编写java代码。  

项目结构图:

项目结构:    

先编写一个实体类User: User类用于与User表相对应。

 User:

  package com.dy.entity;
2
3 public class User {
4
5 private int id;
6 private String name;
7 private String password;
8 private int age;
9 private int deleteFlag;
10
11 public int getId() {
12 return id;
13 }
14 public void setId(int id) {
15 this.id = id;
16 }
17 public String getName() {
18 return name;
19 }
20 public void setName(String name) {
21 this.name = name;
22 }
23 public String getPassword() {
24 return password;
25 }
26 public void setPassword(String password) {
27 this.password = password;
28 }
29 public int getAge() {
30 return age;
31 }
32 public void setAge(int age) {
33 this.age = age;
34 }
35 public int getDeleteFlag() {
36 return deleteFlag;
37 }
38 public void setDeleteFlag(int deleteFlag) {
39 this.deleteFlag = deleteFlag;
40 }
41
42 }

再编写一个UserDao 接口: UserDao:

 package com.dy.dao;
2
3 import java.util.List;
4
5 import com.dy.entity.User;
6
7 public interface UserDao {
8
9 public void insert(User user);
10
11 public User findUserById (int userId);
12
13 public List<User> findAllUsers();
14
15 }

再编写一个userDao-mapping.xml (可随便命名):

userDao-mapping.xml:

 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE mapper
3 PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
4 "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
5 <mapper namespace="com.dy.dao.UserDao">
6
7 <select id="findUserById" resultType="com.dy.entity.User" >
8 select * from user where id = #{id}
9 </select>
10
11 </mapper>

userDao-mapping.xml相当于是UserDao的实现, 同时也将User实体类与数据表User成功关联起来。

4. 下面编写junit测试代码UserDaoTest:

UserDaoTest:

 public class UserDaoTest {
2
3 @Test
4 public void findUserById() {
5 SqlSession sqlSession = getSessionFactory().openSession();
6 UserDao userMapper = sqlSession.getMapper(UserDao.class);
7 User user = userMapper.findUserById(2);
8 Assert.assertNotNull("没找到数据", user);
9 }
10
11 //Mybatis 通过SqlSessionFactory获取SqlSession, 然后才能通过SqlSession与数据库进行交互
12 private static SqlSessionFactory getSessionFactory() {
13 SqlSessionFactory sessionFactory = null;
14 String resource = "configuration.xml";
15 try {
16 sessionFactory = new SqlSessionFactoryBuilder().build(Resources
17 .getResourceAsReader(resource));
18 } catch (IOException e) {
19 e.printStackTrace();
20 }
21 return sessionFactory;
22 }
23
24 }

这个demo, 也能初步看出mybatis的运行机制,如果不清楚,也没关系。

从下一篇文章开始,才开始正式讲解mybatis。

by;一只阿木木

Mybatis 系列1-环境搭建的更多相关文章

  1. Mybatis系列全解(二):Mybatis简介与环境搭建

    封面:洛小汐 作者:潘潘 Mybatis 是一套持久层框架,灵活易用,特别流行. 前言 Mybatis系列全解,我们预计准备10+篇文章,让我们了解到 Mybatis 的基本全貌,真正从入门到上手,从 ...

  2. mybatis:开发环境搭建--增删改查--多表联合查询(多对一)

    什么是mybatisMyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或 ...

  3. 1、 小白带你入坑xamarin系列之环境搭建和准备

    重点提示 由于xamarin发展更新很快 目前教程部分内容已经过时 请注意下载最新版本   2018.05.23 www.xamarin.com 1. 小白带你入坑xamarin系列之环境搭建和准备 ...

  4. 「译」JUnit 5 系列:环境搭建

    原文地址:http://blog.codefx.org/libraries/junit-5-setup/ 原文日期:15, Feb, 2016 译文首发:Linesh 的博客:环境搭建 我的 Gith ...

  5. SSM Spring+SpringMVC+mybatis+maven+mysql环境搭建

    SSM Spring+SpringMVC+mybatis+maven环境搭建 1.首先右键点击项目区空白处,选择new->other..在弹出框中输入maven,选择Maven Project. ...

  6. Mybatis简介、环境搭建和详解

    简介: 1.Mybatis  开源免费框架,原名叫iBatis,2010在google code,2013年迁移到github 2.作用: 数据访问层框架 2.1  底层是对JDBC的封装 3.myb ...

  7. spring+springMVC+mybatis+maven+mysql环境搭建(一)

    环境搭建是最基础的,但是发现平时很多时候大家都是ctrl c+ctrl v,这样对于很多细节完全不清楚,来,一起深入了解下 一.准备工作 首先得准备好maven.mysql啥的,这些略... 并且my ...

  8. Java Web开发SpringMVC和MyBatis框架开发环境搭建和简单有用

    1.下载SpringMVC框架架包,下载地址: 点击下载 点击打开地址如图所看到的.点击下载就可以 然后把相关的jar拷贝到lib下导入 2.MyBatis(3.4.2)下载 X-Amz-Algori ...

  9. 04 Mybatis 框架的环境搭建及入门案例

    1.搭建 Mybatis 开发环境 mybatis的环境搭建 第一步:创建maven工程并导入坐标 第二步:创建实体类和dao的接口 第三步:创建Mybatis的主配置文件 SqlMapConifg. ...

随机推荐

  1. 使用sync 修饰符------子组件内部可以修改props

    首先看一个需求,外部点击一个按钮,让弹窗组件显示(也就是将弹窗组件显示的flag置为true),点击弹窗组件内部的某个按钮 ,让改props置为false,关闭弹窗,但是会报警告,因为内层组件不能修改 ...

  2. centos7部署phpipam(ip管理系统)

    安装必要的软件 yum install httpd mariadb-server php php-cli php-gd php-common php-ldap php-pdo php-pear php ...

  3. 数据库连接池——Druid

    使用步骤: 1.导包,durid1.0.9 jar包 2.定义配置文件,properties文件,名字任意位置也任意, 3.加载文件 4.获得数据库连接池对象  通过DuridDataSourceFa ...

  4. Scala 方法与函数

    Scala 方法与函数:http://www.runoob.com/scala/scala-functions.html Scala 有方法与函数,二者在语义上的区别很小.Scala 方法是类的一部分 ...

  5. nakadi-ui nakadi event broker 的可视化UI工具

    nakadi 是一款很不错的基于fafka 开发的event broker ,我们只需要使用http 请求就可以调用kafka 方便的发布订阅功能 环境准备 docker-compose 文件 ver ...

  6. AIX系统日志

    1.系统错误日志 存放路径:/var/adm/ras/errlog 说明:该日志记录了系统所检测到的软硬件故障和错误,尤其对系统的硬件故障有很大的参考价值,是AIX提供的最有价值的日志之一, errl ...

  7. Linux 操作系统下,安装软件 apt-get、yum 的区别

    Linux 操作系统主要分为两大类: RedHat系列:Redhat.Centos.Fedora等: Debian系列:Debian.Ubuntu等. yum(Yellow dog Updater, ...

  8. gets_s()函数的参数太少,strcpy_s():形参和实参 2 的类型不同,等c函数在Visual Studio上出现的问题, get()函数和scanf()读取字符串的区别,栈的随机性

    首先,这些C函数,在VS上要加_s后缀的原因是,这些函数存在字符串越界等问题,可以参考这篇文章,https://blog.csdn.net/silleyj/article/details/854540 ...

  9. centos7数据库连接使用127.0.0.1报permission denied,使用localhost报No such file or directory

    安装lamp环境后,测试数据库连接. 当host使用127.0.0.1时,报错:(HY000/2002): Permission denied. 把host换成localhost后,又报错:SQLST ...

  10. Springboot配置文件映射

    添加类和配置文件的映射: 1.定义映射类 @Component @PropertySource("classpath:config/XX.properties") public c ...