说明:

  在这个部分,会写个简单的入门案例。

  然后,会重新写一个,更加严格的程序案例。

一:案例一

1.最终的目录结构

  

2.新建一个普通的Java项目,并新建lib

  在项目名上右键,不是src。

  

3.导入需要的jar包,并加入到classpath中

  mybatis-3.4.5.jar
  mysql-connector-java-5.1.18-bin.jar

  

4.新建数据库与表

1 CREATE DATABASE mybatis;
2 USE mybatis;
3 CREATE TABLE users(
4     ID INT PRIMARY KEY AUTO_INCREMENT,
5     NAME VARCHAR(20),
6     AGE INT
7 );
8 INSERT INTO users(NAME,age) VALUES("TOM",12);
9 INSERT INTO users(NAME,AGE) VALUES("JACK",11);

5.新建bean--User.java

 1 package com.test;
 2
 3 public class User {
 4     private int id;
 5     private String name;
 6     private int age;
 7     public User() {}
 8     public int getId() {
 9         return id;
10     }
11     public void setId(int id) {
12         this.id = id;
13     }
14     public String getName() {
15         return name;
16     }
17     public void setName(String name) {
18         this.name = name;
19     }
20     public int getAge() {
21         return age;
22     }
23     public void setAge(int age) {
24         this.age = age;
25     }
26     @Override
27     public String toString() {
28         return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
29     }
30
31 }

6.新建配置文件--Configuration.xml 

resource="users.xml",注意的是,这个不需要加/。
 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
 3
 4 <configuration>
 5   <environments default="development">
 6     <environment id="development">
 7       <transactionManager type="JDBC">
 8         <property name="" value=""/>
 9       </transactionManager>
10       <dataSource type="UNPOOLED">
11         <property name="driver" value="com.mysql.jdbc.Driver"/>
12         <property name="url" value="jdbc:mysql://127.0.0.1:3308/mybatis"/>
13         <property name="username" value="root"/>
14         <property name="password" value="123456"/>
15       </dataSource>
16     </environment>
17   </environments>
18
19    <mappers>
20       <mapper resource="users.xml"/>
21    </mappers>
22
23 </configuration>

7.新建映射文件--users.xml

  在这个映射文件中,需要注意的是,需要写result Map,不然找不到返回值。

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE mapper
 3     PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4     "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5
 6 <mapper namespace="quickFirst">
 7     <resultMap type="com.test.User" id="User">
 8         <id column="ID" jdbcType="INTEGER" property="id"/>
 9         <result column="NAME" jdbcType="VARCHAR" property="name"/>
10         <result column="AGE" jdbcType="INTEGER" property="age"/>
11     </resultMap>
12
13     <select id="selectUser" parameterType="int" resultMap="User">
14         SELECT * From users where id = #{id};
15     </select>
16 </mapper>

8.测试类--TestSelectById.java

  这个类中使用的是反射的形式来获取配置文件。

  需要注意的是:String resources="/Configuration.xml",这个需要增加/。

 1 package com.test;
 2
 3 import java.io.InputStream;
 4
 5 import org.apache.ibatis.session.SqlSession;
 6 import org.apache.ibatis.session.SqlSessionFactory;
 7 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 8
 9 public class TestSelectById {
10     public static void main(String[] regs) {
11         String resources="/Configuration.xml";
12         InputStream is=TestSelectById.class.getResourceAsStream(resources);
13         SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(is);
14         SqlSession sqlSession=sqlSessionFactory.openSession();
15         String statement="quickFirst.selectUser";
16         User user=sqlSession.selectOne(statement, 1);
17         System.out.println(user);
18     }
19 }

9.效果图

  

二:案例二

1.程序最终目录

  

2.新建表

 1 DROP TABLE IF EXISTS `message`;
 2 CREATE TABLE `message` (
 3   `ID` int(20) AUTO_INCREMENT COMMENT '主键',
 4   `COMMAND` varchar(16) DEFAULT NULL COMMENT '指令名称',
 5   `DESCRIPTION` varchar(32) DEFAULT NULL COMMENT '描述',
 6   `CONTENT` varchar(2048) DEFAULT NULL COMMENT '内容',
 7   PRIMARY KEY (`ID`)
 8 ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
 9
10 INSERT INTO `message` VALUES ('1', '查看', '精彩内容', '精彩内容');
11 INSERT INTO `message` VALUES ('2', '段子', '精彩段子', '如果你的月薪是3000块钱');
12 INSERT INTO `message` VALUES ('3', '新闻', '今日头条', '7月17日,马来西亚一架载有298人');
13 INSERT INTO `message` VALUES ('4', '娱乐', '娱乐新闻', '昨日,邓超在微博分享了自己和孙俪的书法。');
14 INSERT INTO `message` VALUES ('5', '电影', '近日上映大片', '《忍者神龟》');

  

3.新建Message.java

 1 package com.cao.bean;
 2 /**
 3  * message��
 4  * @author dell
 5  *
 6  */
 7 public class Message {
 8     private int id;
 9     private String command;
10     private String description;
11     private String content;
12     public Message() {}
13     public Message(int id, String command, String description, String content) {
14         super();
15         this.id = id;
16         this.command = command;
17         this.description = description;
18         this.content = content;
19     }
20     public int getId() {
21         return id;
22     }
23     public void setId(int id) {
24         this.id = id;
25     }
26     public String getCommand() {
27         return command;
28     }
29     public void setCommand(String command) {
30         this.command = command;
31     }
32     public String getDescription() {
33         return description;
34     }
35     public void setDescription(String description) {
36         this.description = description;
37     }
38     public String getContent() {
39         return content;
40     }
41     public void setContent(String content) {
42         this.content = content;
43     }
44
45
46 }

4.新建配置文件

 1 <?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   <environments default="development">
 7     <environment id="development">
 8       <transactionManager type="JDBC">
 9         <property name="" value=""/>
10       </transactionManager>
11       <dataSource type="UNPOOLED">
12         <property name="driver" value="com.mysql.jdbc.Driver"/>
13         <property name="url" value="jdbc:mysql://127.0.0.1:3308/mybatis"/>
14         <property name="username" value="root"/>
15         <property name="password" value="123456"/>
16       </dataSource>
17     </environment>
18   </environments>
19
20    <mappers>
21       <mapper resource="com/cao/config/Message.xml"/>
22    </mappers>
23
24 </configuration>

5.新建映射文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE mapper
 3     PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4     "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5
 6 <mapper namespace="Message">
 7
 8   <resultMap type="com.cao.bean.Message" id="MessageResult">
 9     <id column="ID" jdbcType="INTEGER" property="id"/>
10     <result column="COMMAND" jdbcType="VARCHAR" property="command"/>
11     <result column="DESCRIPTION" jdbcType="VARCHAR" property="description"/>
12     <result column="CONTENT" jdbcType="VARCHAR" property="content"/>
13   </resultMap>
14
15   <select id="queryMessageList" parameterType="com.cao.bean.Message" resultMap="MessageResult">
16     SELECT ID,COMMAND,DESCRIPTION,CONTENT FROM message WHERE 1=1
17   </select>
18
19 </mapper>

6.新建DBAccess.java,链接数据库

 1 package com.cao.db;
 2
 3 import java.io.IOException;
 4 import java.io.Reader;
 5
 6 import org.apache.ibatis.io.Resources;
 7 import org.apache.ibatis.session.SqlSession;
 8 import org.apache.ibatis.session.SqlSessionFactory;
 9 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
10
11 public class DBAccess {
12     public SqlSession getSqlSession() throws Exception {
13         //获取数据库的连接信息
14         Reader reader=Resources.getResourceAsReader("com/cao/config/Configuration.xml");
15
16         //
17         SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);
18
19         //
20         SqlSession sqlSession=sqlSessionFactory.openSession();
21
22         System.out.println(sqlSession);
23         return sqlSession;
24     }
25 }

7.新建Dao,操作数据库

 1 package com.cao.dao;
 2
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.PreparedStatement;
 6 import java.sql.ResultSet;
 7 import java.sql.SQLException;
 8 import java.util.ArrayList;
 9 import java.util.List;
10
11 import org.apache.ibatis.session.SqlSession;
12
13 import com.cao.bean.Message;
14 import com.cao.db.DBAccess;
15
16 /**
17  * 和message相关的dao
18  * @author dell
19  *
20  */
21 public class MessageDao {
22     /**
23      * 查询以及包括条件查询
24      * @param command
25      * @param description
26      * @return
27      */
28     public List<Message> queryMessageList()  {
29         List<Message> messageList=new ArrayList<>();
30         SqlSession sqlSession=null;
31         /**
32          * MyBatis
33          */
34         DBAccess dbAccess=new DBAccess();
35         try {
36             //封装,方便将参数传进到xml中
37             Message message=new Message();
38             sqlSession=dbAccess.getSqlSession();
39             messageList=sqlSession.selectList("Message.queryMessageList",message);
40
41         } catch (Exception e) {
42
43             e.printStackTrace();
44         }finally {
45             sqlSession.close();
46         }
47
48         return messageList;
49
50     }
51 }

8.新建service,数据处理层

 1 package com.cao.service;
 2
 3 import java.util.List;
 4
 5 import com.cao.bean.Message;
 6 import com.cao.dao.MessageDao;
 7
 8 /**
 9  * 列表相关的业务功能
10  * @author dell
11  *
12  */
13 public class ListService {
14     public List<Message> queryMessageList() {
15         MessageDao messageDao=new MessageDao();
16         return messageDao.queryMessageList();
17     }
18 }

9.测试类

 1 package com.cao.main;
 2
 3 import java.util.Iterator;
 4 import java.util.List;
 5
 6 import com.cao.bean.Message;
 7 import com.cao.service.ListService;
 8
 9 public class TestSelectList {
10     public static void main(String[] args) {
11         ListService listService=new ListService();
12         List messageList=listService.queryMessageList();
13         Iterator it=messageList.iterator();
14         while(it.hasNext()) {
15             Message message=(Message)it.next();
16             String com=message.getCommand();
17             System.out.println(com);
18         }
19     }
20 }

10,结果

  

  

转载于:https://www.cnblogs.com/juncaoit/p/8094206.html

mybatis的快速入门相关推荐

  1. MyBatis之快速入门

    MyBatis之快速入门 2017/9/30 首先我要明确告诉大家的是MyBatis是一个java持久层框架,以前我们都是用jdbc来将我们的java程序与数据库相连接,而MyBatis是对jdbc的 ...

  2. java day53【 Mybatis框架概述 、 Mybatis 框架快速入门、自定义 Mybatis 框架 】

    第1章 框架概述 1.1 什么是框架 1.1.1 什么是框架 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种 定义认为,框架是可被应用开发者定 ...

  3. MyBatis框架快速入门

    MyBatis框架快速入门 入门案例 创建一个关于Mybatis项目 首先创建一个空项目,然后新建一个moudle,选择quickstart,接下来把模块放到空项目之下.即可 实现mybatis查询数 ...

  4. MyBatis 01 快速入门

    MyBatis 01 快速入门 文章目录 MyBatis 01 快速入门 一.学习目标 二.为什么需要框架技术 三.框架技术介绍 四.主流框架介绍 五.持久化与ORM 六.MyBatis简介 七.搭建 ...

  5. Mybatis(day1)快速入门

    框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法:另一种定义认为,框架是可被应用开发者定制的应用骨架.前者是从应用方面而后者是从目的方面给出的定义. 简 ...

  6. 第一:Java+MyBatis(快速入门)

    MyBatis 简介 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...

  7. springboot 整合mybatis_SpringBoot整合MyBatis框架快速入门

    MyBatis概述: mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动.创建连接.创建statemenet等繁 ...

  8. MyBatis:快速入门代码实例(maven代码版)

    文章目录 1. MyBatis实例 1.1 添加Mybatis依赖 1.2 创建MyBatis配置文件 1.3.创建po类 1.4.创建映射文件 #{}: 表示sql参数,一个占位符. 1.5.测试 ...

  9. MyBatis从入门到精通(一)—MyBatis基础知识和快速入门

    Mybatis简介 原始jdbc操作(查询数据) Connection connection = null;PreparedStatement preparedStatement = null;Res ...

最新文章

  1. 荣耀有鸿蒙手机吗,荣耀手机也能升鸿蒙!这5款机型用户有福了
  2. wsl安装配置vscode(亲测有用)
  3. SAP CRM呼叫中心异步搜索功能的实现
  4. canvas笔记-画三角形并计算其外心(含算法其他绘图框架类似)
  5. 《Maintainable JavaScript》读书笔记
  6. 《前端工程化体系设计与实践》-笔记
  7. Android BottomNavigationBar导航栏
  8. C语言 后面,c语言++放在前面和后面的区别分析
  9. android webview内存泄漏,Android由webview引起的内存泄漏
  10. C语言项目 ---- 纸牌游戏(详细讲解 + 全部代码 + 运行图片)
  11. 数字信号处理第二章:Z变换及离散时间系统系统分析
  12. 奇兔recovery卡刷教程_奇兔刷机小编为你详解recovery界面中的功能
  13. cox(Quaro)对设计的崭新定义,改变我的人生
  14. Linux进程调度与性能优化 | 真货
  15. 自学python第四天之实现LUR算法
  16. pythondis功能_python中dis的用法
  17. 杰理之实现 AUX 的功能【篇】
  18. Oxygen Not Included
  19. 整理UML建模概念和图形~(啥?程序员不再写代码,变成画图工程师?)
  20. ASS字幕制作和压制教程

热门文章

  1. python软件包自带的集成开发环境-Python的10大集成开发环境和代码编辑器(指南)...
  2. python流程控制-实战案例手把手教你Python流程控制技巧
  3. python的jupyter的使用教程-Python·Jupyter Notebook各种使用方法
  4. python好找工作吗2017-2017,再来聊一聊Python,未来发展怎样?
  5. python安装教程3.8.5-怎么安装最新Python3.8.5-新手入门教程必看
  6. 简明python教程购买-自学Python买什么书?
  7. python绘制简单图形-python绘制数学图形(堪比matlab)
  8. python3爬虫实例-Python3 爬虫实例(一)-- 简单网页抓取
  9. 我在学python-我慌了,周围人都在学python...
  10. python在财务中的应用实训报告-实践应用|PyQt5制作雪球网股票数据爬虫工具