我们现在工程基于的数据库见“https://www.cnblogs.com/wyhluckdog/p/10147754.html”这篇博文。

1.mybatis下载

  mybatis的代码由githua.com管理,地址:https://github.com/mybatis/mybatis-3/releases

  

  * mybatis-3.2.7.jar----mybatis的核心包

  * lib----mybatis的依赖包

  * mybatis-3.2.7.pdf----mybatis使用手册

2.需求

  实现以下功能:

    根据用户id查询一个用户的信息

    根据用户名称模糊查询用户信息列表

    添加用户

    更新用户

    删除用户

3.工程搭建

(1)第一步:创建java工程

  使用ecplise创建java工程,jdk为1.7.0_72.

(2)第二步:导入jar包

  加入mybatis核心包、依赖包(在lib目录下)、数据驱动包、单元测试包。

  

(3)第三步:创建包结构config,我们将所有的配置文件均放在这个包下。

(4)第四步:在config包下创建配置文件log4j.properties。

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

  mybatis默认使用log4j作为作为输出日志信息。

(5)第五步:在config包下创建SqlMapConfig.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>
<!-- 和spring整合后 environments配置将废除-->
<environments default="development">
<environment id="development">
<!-- 使用jdbc事务管理-->
<transactionManager type="JDBC" />
<!-- 数据库连接池-->
<!-- mybatis内置的连接池效率不高所以实际公司开发中我们不用 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments> </configuration>

  SqlMapConfig.xml是mybatis核心配置文件,上边文件的配置内容为数据源、事务管理。

(6)第六步:po类。在工程下创建po包,用于放置po类(本质上与bean类没有区别,同样是参数和对应的set/get方法)。

  po类作为mybatis进行sql映射使用,po类通常与数据库表对应,User.java如下:

package com.huida.po;

import java.util.Date;

public class User {

    private int id;
private String username;// 用户姓名
private String sex;// 性别
private Date birthday;// 生日
private String address;// 地址
public void setId(int id) {
this.id = id;
}
public void setUsername(String username) {
this.username = username;
}
public void setSex(String sex) {
this.sex = sex;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public void setAddress(String address) {
this.address = address;
}
public int getId() {
return id;
}
public String getUsername() {
return username;
}
public String getSex() {
return sex;
}
public Date getBirthday() {
return birthday;
}
public String getAddress() {
return address;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + "]";
} }

(7)sql映射文件。

  在config包下创建sql映射文件User.xml:

<?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">
<!-- namespace:命名空间,做Sql隔离 -->
<!-- 在mapper标签中要写很多sql语句。在开发项目的过程中有很多人都会写Sql
语句,在最后整合的时候可能会重复。现在我们使用命名空间开进行隔离,比如zhangsan
写的select * from user,我们可以写为:zhangsan:select * from user来进行标识。 -->
<mapper namespace="test"> </mapper>

  namespace:命名空间,用于sql隔离语句。

  在mapper标签中要写很多sql语句。在开发项目的过程中有很多人都会写Sql语句,在最后整合的时候可能会重复。现在我们使用命名空间开进行隔离,比如zhangsan写的select * from user,我们可以写为:zhangsan:select * from user来进行标识。

(8)第八步:加载映射文件。

  mybatis框架需要加载映射文件,将User.xml添加在SqlMapConfig.xml,如下:

<mappers>
<mapper resource="config/User.xml"/>
</mappers>

(9)第九步:根据id查询用户信息

  1、映射文件:

  在User.xml的mapper标签中添加:

<!-- id:sql语句的唯一标识   test:findUserById就可以唯一标识sql语句
paremeterType:指定传入的参数类型
resultSetType:返回值结果类型
#{}占位符:起到占位的左永刚,如果传入的基本类型{String,long,double,int boolean等},那么
#{}中的变量名称可以随意写。
-->
<select id="findUserById" parameterType="java.lang.Integer" resultType="com.huida.po.User">
<!-- select语句返回的是user对象,所以resultType中写User类的全路径 -->
select * from user where id=#{id}
</select>
  id:sql语句的唯一标识   test:findUserById就可以唯一标识sql语句
paremeterType:指定传入的参数类型
resultSetType:返回值结果类型
#{}占位符:起到占位的左永刚,如果传入的基本类型{String,long,double,int boolean等},那么#{}中的变量名称可以随意写。

  2、测试程序:

package com.huida.test;

import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test; import com.huida.po.User; public class UserTest { @Test
public void testFindUserById() throws Exception{
//通过流将核心配置文件读取进来
InputStream inputStream=Resources.getResourceAsStream("config/SqlMapConfig.xml");
//通过核心配置文件输入流来创建工厂
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);
//通过工厂创建session
SqlSession openSession=factory.openSession();
//查询语句,查询id为1的记录,返回值为User对象
User user=openSession.selectOne("test.findUserById", 1);
System.out.println(user);
//关闭资源
openSession.close();
//factory没有close(),因为session关闭之后,factory也就关闭了。
} }

(10)执行测试程序,单元测试UserTest方法,可以看到在控制台输出id以及username。说明查询成功。

mybatis框架入门程序:演示通过mybatis实现数据库的查询操作的更多相关文章

  1. mybatis框架入门程序:演示通过mybatis实现数据库的插入操作中实现返回结果的获取

    1.mybatis实现数据库的插入操作可以查看https://www.cnblogs.com/wyhluckdog/p/10149895.html这篇博文,这里面的插入操作没有返回结果,所以这篇博文就 ...

  2. mybatis框架入门程序:演示通过mybatis实现数据库的修改操作

    1.mybatis的基本配置工作可以在我的这篇博客中查看:https://www.cnblogs.com/wyhluckdog/p/10149480.html 2.修改用户的配置文件: <upd ...

  3. mybatis框架入门程序:演示通过mybatis实现数据库的删除操作

    1.mybatis的基本配置工作可以在我的这篇博客中查看:https://www.cnblogs.com/wyhluckdog/p/10149480.html 2.删除用户的映射文件: <!-- ...

  4. mybatis框架入门程序:演示通过mybatis实现数据库的添加操作

    1.mybatis的基本配置准备在我的这篇博文中可以找到:https://www.cnblogs.com/wyhluckdog/p/10149480.html 2. 映射文件: 在User.xml中添 ...

  5. mybatis框架入门程序:演示通过mybatis实现数据库的模糊查询操作

    1. mybatis的基本准备操作见我的上一篇博文:https://www.cnblogs.com/wyhluckdog/p/10149480.html 2. 根据用户名查询用户信息: (1)映射文件 ...

  6. Mybatis框架入门

    Mybaits框架 一.什么是Mybatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了googl ...

  7. 一看就懂的Mybatis框架入门笔记

    本篇为初学Mybatis框架时的入门笔记,整理发出 Spring集成Mybatis https://www.cnblogs.com/yueshutong/p/9381590.html SpringBo ...

  8. 零基础学习java------36---------xml,MyBatis,入门程序,CURD练习(#{}和${}区别,模糊查询,添加本地约束文件) 全局配置文件中常用属性 动态Sql(掌握)

    一. xml  1. 文档的声明 2. 文档的约束,规定了当前文件中有的标签(属性),并且规定了标签层级关系 其叫html文档而言,语法要求更严格,标签成对出现(不是的话会报错) 3. 作用:数据格式 ...

  9. MyBatis框架入门之(二)

    在本篇文章中,没有对细节进行处理的很好,有很多晓得细节的遗漏,本文只是一个简单的快速的入门 MyBatis的快速入门 导入MyBatis框架jar包 配置文件 SqlSessionFactoryBui ...

随机推荐

  1. JNDI的学习与使用

    JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API.命名服务将名称和对象联系起来,使得我们可以用 ...

  2. KuDu论文解读

    kudu是cloudera在2012开始秘密研发的一款介于hdfs和hbase之间的高速分布式存储数据库.兼具了hbase的实时性.hdfs的高吞吐,以及传统数据库的sql支持.作为一款实时.离线之间 ...

  3. 信息学奥赛(NOIP)复赛学习方法推荐

    一.确定你的语言 NOIP包括三种语言c/c++/pascal,在最初必须确定自己使用的语言.没有c/c++基础的,个人建议使用pascal,因为它更容易上手,如果有充裕的时间,则建议c/c++,因为 ...

  4. django中使用Form组件

    内容: 1.Form组件介绍 2.Form组件常用字段 3.Form组件校验功能 4.Form组件内置正则校验 参考:https://www.cnblogs.com/liwenzhou/p/87478 ...

  5. 3.1_分类算法之k-近邻

    分类算法之k-近邻 k-近邻算法采用测量不同特征值之间的距离来进行分类 优点:精度高.对异常值不敏感.无数据输入假定 缺点:计算复杂度高.空间复杂度高 使用数据范围:数值型和标称型 一个例子弄懂k-近 ...

  6. 0_Simple__simpleMultiCopy

    利用 CUDA 的 Overlap 特性同时进行运算和数据拷贝来实现加速. ▶ 源代码.使用 4 个流一共执行 10 次 “数据上传 - 内核计算 - 数据下载” 过程,记录使用时间. #includ ...

  7. spring boot 整合 (全)

    参考: https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples

  8. VBA 判断单元格是否为公式,可用于数组

    Function ISFORMULA(ByVal rg As Object) As Variant      Dim temp As Variant      Dim i As Integer, j ...

  9. MS SQL 2005 无法建立用户实例

    SC.EXE stop "MSSQL$SQLEXPRESS"RD /S /Q "%USERPROFILE%\Local Settings\Application Data ...

  10. UI5-文档-4.3-Controls

    现在是时候构建我们的第一个小UI了,将HTML主体中的“Hello World”文本替换为SAPUI5控件sap.m.Text.首先,我们将使用JavaScript控件接口来设置UI,然后将控件实例放 ...