说明:

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

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

一:案例一

1.最终的目录结构

  

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

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

  

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

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

  

4.新建数据库与表

 CREATE DATABASE mybatis;
USE mybatis;
CREATE TABLE users(
ID INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20),
AGE INT
);
INSERT INTO users(NAME,age) VALUES("TOM",12);
INSERT INTO users(NAME,AGE) VALUES("JACK",11);

5.新建bean--User.java

 package com.test;

 public class User {
private int id;
private String name;
private int age;
public User() {}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
} }

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

resource="users.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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC">
<property name="" value=""/>
</transactionManager>
<dataSource type="UNPOOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3308/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments> <mappers>
<mapper resource="users.xml"/>
</mappers> </configuration>

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

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

 <?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="quickFirst">
<resultMap type="com.test.User" id="User">
<id column="ID" jdbcType="INTEGER" property="id"/>
<result column="NAME" jdbcType="VARCHAR" property="name"/>
<result column="AGE" jdbcType="INTEGER" property="age"/>
</resultMap> <select id="selectUser" parameterType="int" resultMap="User">
SELECT * From users where id = #{id};
</select>
</mapper>

8.测试类--TestSelectById.java

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

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

 package com.test;

 import java.io.InputStream;

 import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class TestSelectById {
public static void main(String[] regs) {
String resources="/Configuration.xml";
InputStream is=TestSelectById.class.getResourceAsStream(resources);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(is);
SqlSession sqlSession=sqlSessionFactory.openSession();
String statement="quickFirst.selectUser";
User user=sqlSession.selectOne(statement, 1);
System.out.println(user);
}
}

9.效果图

  

二:案例二

1.程序最终目录

  

2.新建表

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

  

3.新建Message.java

 package com.cao.bean;
/**
* message��
* @author dell
*
*/
public class Message {
private int id;
private String command;
private String description;
private String content;
public Message() {}
public Message(int id, String command, String description, String content) {
super();
this.id = id;
this.command = command;
this.description = description;
this.content = content;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getCommand() {
return command;
}
public void setCommand(String command) {
this.command = command;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
} }

4.新建配置文件

 <?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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC">
<property name="" value=""/>
</transactionManager>
<dataSource type="UNPOOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3308/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments> <mappers>
<mapper resource="com/cao/config/Message.xml"/>
</mappers> </configuration>

5.新建映射文件

 <?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="Message"> <resultMap type="com.cao.bean.Message" id="MessageResult">
<id column="ID" jdbcType="INTEGER" property="id"/>
<result column="COMMAND" jdbcType="VARCHAR" property="command"/>
<result column="DESCRIPTION" jdbcType="VARCHAR" property="description"/>
<result column="CONTENT" jdbcType="VARCHAR" property="content"/>
</resultMap> <select id="queryMessageList" parameterType="com.cao.bean.Message" resultMap="MessageResult">
SELECT ID,COMMAND,DESCRIPTION,CONTENT FROM message WHERE 1=1
</select> </mapper>

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

 package com.cao.db;

 import java.io.IOException;
import java.io.Reader; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class DBAccess {
public SqlSession getSqlSession() throws Exception {
//获取数据库的连接信息
Reader reader=Resources.getResourceAsReader("com/cao/config/Configuration.xml"); //
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader); //
SqlSession sqlSession=sqlSessionFactory.openSession(); System.out.println(sqlSession);
return sqlSession;
}
}

7.新建Dao,操作数据库

 package com.cao.dao;

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List; import org.apache.ibatis.session.SqlSession; import com.cao.bean.Message;
import com.cao.db.DBAccess; /**
* 和message相关的dao
* @author dell
*
*/
public class MessageDao {
/**
* 查询以及包括条件查询
* @param command
* @param description
* @return
*/
public List<Message> queryMessageList() {
List<Message> messageList=new ArrayList<>();
SqlSession sqlSession=null;
/**
* MyBatis
*/
DBAccess dbAccess=new DBAccess();
try {
//封装,方便将参数传进到xml中
Message message=new Message();
sqlSession=dbAccess.getSqlSession();
messageList=sqlSession.selectList("Message.queryMessageList",message); } catch (Exception e) { e.printStackTrace();
}finally {
sqlSession.close();
} return messageList; }
}

8.新建service,数据处理层

 package com.cao.service;

 import java.util.List;

 import com.cao.bean.Message;
import com.cao.dao.MessageDao; /**
* 列表相关的业务功能
* @author dell
*
*/
public class ListService {
public List<Message> queryMessageList() {
MessageDao messageDao=new MessageDao();
return messageDao.queryMessageList();
}
}

9.测试类

 package com.cao.main;

 import java.util.Iterator;
import java.util.List; import com.cao.bean.Message;
import com.cao.service.ListService; public class TestSelectList {
public static void main(String[] args) {
ListService listService=new ListService();
List messageList=listService.queryMessageList();
Iterator it=messageList.iterator();
while(it.hasNext()) {
Message message=(Message)it.next();
String com=message.getCommand();
System.out.println(com);
}
}
}

10,结果

  

  

mybatis的快速入门的更多相关文章

  1. mybatis框架快速入门

    通过快速入门示例,我们发现使用mybatis 是非常容易的一件事情,因为只需要编写 Dao 接口并且按照 mybatis要求编写两个配置文件,就可以实现功能.远比我们之前的jdbc方便多了.(我们使用 ...

  2. MyBatis(1)——快速入门

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

  3. (转) MyBatis(1)——快速入门

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

  4. spring3.0+mybatis+spring快速入门

    一.首先奉上项目目录结构: 说明: dao,mapping,model包下的所有内容可以使用Generator工具自助生成. 具体用法,可以网上学习一下,比较简单,主要做以下工作: 1.提供相关的数据 ...

  5. MyBatis框架——快速入门

    主流的ORM框架(帮助开发者实现数据持久化工作的框架): 1.MyBatis: 半自动化ORM框架,半自动:指框架只完成一部分功能,剩下的工作仍需开发者手动完成. MyBatis 框架没有实现 POJ ...

  6. Mybatis框架 的快速入门

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

  7. MyBatis学习总结(一)——MyBatis快速入门

    一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...

  8. MyBatis快速入门

    一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...

  9. MyBatis学习总结(一)——MyBatis快速入门(转载)

    本文转载自http://www.cnblogs.com/jpf-java/p/6013537.html MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了 ...

随机推荐

  1. Android应用如何跳转到应用市场详情页面

    Android应用开发过程中,可能会有需求,比如:推广时跳转到应用市场下载应用,跳转到应用市场给自己的应用打分,跳转到应用市场更新自己的应用.那如何跳转到应用市场呢?可能跳转的方法大家都是知道的,方法 ...

  2. 【NOIP 2018】保卫王国(动态dp / 倍增)

    题目链接 这个$dark$题,嗯,不想说了. 法一:动态$dp$ 虽然早有听闻动态$dp$,但到最近才学,如果你了解动态$dp$,那就能很轻松做出这道题了.故利用这题在这里科普一下动态$dp$的具体内 ...

  3. 洛谷P2469 星际竞速

    上下界费用流比较无脑,提供一种更巧妙的费用流,无需上下界. #include <cstdio> #include <algorithm> #include <queue& ...

  4. easyui的tab加载页面中的form重复提交

    http://blog.csdn.net/fxz1982/article/details/8987769 Easyui中的tabs组件以href方式加载目标页面,如果目标页面中有dialog或者win ...

  5. openstack遇到的错误

    错误1:运行python脚本,提示401错误(未授权) 解决方法:我的是因为版本问题,注意变量名称等 学新版本吧........

  6. vue之props父子组件之间的谈话

    眨眼就来杭州两年了,时间真快. 我们今天来说说vue的一个api---->props 首先我们先看看一个例子,是我一个项目中写的. 看到这个:有木有一点懂了.要是没懂,继续往下看 这里我们用到了 ...

  7. 微软官网给出CSS选择器支持列表

    CSS Compatibility and Internet Explorer 这是在 @司徒正美 博客里看到的,所以搬到自己博客,收藏下..正如司徒兄所说,微软太狡滑了,如果把不支持的属性用红色标示 ...

  8. spring Mvc 执行原理 及 xml注解配置说明 (六)

    Spring MVC 执行原理 在 Spring Mvc 访问过程里,每个请求都首先经过 许多的过滤器,经 DispatcherServlet 处理; 一个Spring MVC工程里,可以配置多个的 ...

  9. 20155227 2016-2017-2 《Java程序设计》第五周学习总结

    20155227 2016-2017-2 <Java程序设计>第五周学习总结 教材学习内容总结 语法与继承架构 使用try...catch JVM会尝试执行try区块中的程序代码,如果发生 ...

  10. Python 入门基础8 --函数基础1 定义、分类与嵌套使用

    目录 零.了解函数 一.函数的组成 二.函数的定义 三.函数的使用 四.函数的分类 五.函数的嵌套使用 零.了解函数 1.什么是函数 在程序中函数就是具备某一功能的工具 2.为何用函数 为了解决以下问 ...