MyBatis简单配置及简单查询

1.把所需jar(mysql-connector-java-5.1.18-bin.jar和mybatis-3.3.0.jar)拷贝到lib目录下

2.编写与数据库对应的实体类UserInfo

3.创建mybatis-config.xml配置文件:

<!-- 	配置数据库连接   	-->
  <environments default="developments">
    <environment id="mysql">
      <transactionManager type="JDBC">
        <property name="" value=""/>
      </transactionManager>
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&amp;characterEncoding=utf8"/>
        <property name="username" value="root"/>
        <property name="password" value="wc654321"/>
      </dataSource>
    </environment>
  </environments>

<!-- 对应的sql映射文件userinfo.xml -->
 <mappers>
    <mapper resource="com/wc/config/userinfo.xml"/>
 </mappers>

4.创建DBFactory类获取SqlSessionFactory

/**
 * 访问数据库类
 */
public class DBFactory {
	public static SqlSessionFactory sqlSessionFactory = null;
	static {
		try {
			String resource = "com/wc/config/mybatis-config.xml";
			InputStream inputStream = Resources.getResourceAsStream(resource);
			sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream,"mysql");//第二个参数:指定需要连接的数据库配置

		} catch (IOException e) {

		    e.printStackTrace();
		}
	}
	public static SqlSessionFactory getFactory(){
		return sqlSessionFactory;
	}

或者

/**
 * 访问数据库类
 */
public class DBAccess {

	public SqlSession getSqlSession() throws IOException{

		//(1)通过配置文件获取数据库连接相关信息<br>
		Reader reader = Resources.getResourceAsReader("com/wc/config/Configuration.xml");
		//(2)通过配置信息构建SqlSessionFactory
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader,"mysql");
		//(3)通过SqlSessionFactory打开数据库回话
		SqlSession sqlSession = sqlSessionFactory.openSession();
		return sqlSession;
	}
}

5.创建mybatis的sql映射文件userinfo.xml

<mapper namespace="com.wc.Interface.IuserInfo"> :对应接口,统一命名空间,重要!

resultMap: property对应实体类属性,column 对应着数据库字段

sql语句:

id="selectUserByInterface"  唯一标识

parameterType="java.lang.Integer"  参数的类型

resultMap="userResult"  返回类型

select <include refid="columns"/> from user_info order by user_id

<sql id="columns">user_id,user_name,user_sex</sql>

<?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.wc.Interface.IUserInfo">

  <resultMap type="com.wc.po.UserInfo" id="UserResult">
    <id column="user_id" jdbcType="INTEGER" property="userId"/>
    <result column="user_name" jdbcType="VARCHAR" property="userName"/>
    <result column="user_sex" jdbcType="VARCHAR" property="userSex"/>
  </resultMap>
   
   <select id="selectUserByInterface" parameterType="com.wc.po.UserInfo" resultMap="UserResult">
    select <include refid="columns"/> from user_info
    order by user_id
    </select>
  
   <select id="selectOneUserByInterface" parameterType="java.lang.Integer" resultMap="UserResult">
    select <include refid="columns"/> from user_info where user_id=#{userID}
    </select>

</mapper>

6.通过接口的方式调用XML的查询语句(面向接口式编程)

public interface IUserInfo {

	/**
	 * 根据user_id查询单个信息
	 */
	public UserInfo selectOneUserByInterface(int i);

	/**
	 * 查询全部信息
	 */
	public List<UserInfo> selectUserByInterface();

}

7.从SqlSessionFactory里面获取SqlSession:DBFactory.getFactory().openSession();

在从SqlSession拿到增删修查一系列方法

/**
 * 使用接口的方式进行全部查询
 */
@Test
public void selectUserByInterface() {
	List<UserInfo>  userInfo = new ArrayList<UserInfo>();
	// 获取sqlSession
	SqlSession session = null;
	try {
		// 从SqlSessionFactory里获取SqlSession
		session = DBFactory.getFactory().openSession();
		//接口
		IUserInfo iUserInfo = session.getMapper(IUserInfo.class);
		userInfo = iUserInfo.selectUserByInterface();
		if (userInfo != null && userInfo.size() > 0) {
			for (UserInfo user : userInfo) {
				System.out.println(user);
			}
		}
	} catch (Exception e) {

	} finally {
		if (session != null) {
			session.close();
		}
	}
}

/**
 * 使用接口的方式进行单条查询
 */
@Test
public void selectOneUserByInterface() {
	// 获取sqlSession
	SqlSession session = null;
	try {
		// 从SqlSessionFactory里获取SqlSession
		session = DBFactory.getFactory().openSession();
		//UserInfo userInfo = session.selectOne("userinfo.selectOneUser",3);userinfo是以前的命名空间
		IUserInfo iUserInfo = session.getMapper(IUserInfo.class);
		UserInfo userInfo = iUserInfo.selectOneUserByInterface(3);
		System.out.println(userInfo);

	} catch (Exception e) {

	} finally {
		if (session != null) {
			session.close();
		}
	}
}

最后关闭SqlSession

时间: 2024-11-05 04:22:47

MyBatis简单配置及简单查询的相关文章

使用SpringMVC+mybatis+事务控制+JSON 配置最简单WEB

最近在总结一些项目的基础知识,根据公司最近的一些意向和技术路线,初步整理了一个简单的配置例子     1.使用springmvc代替strutsMVC     2.使用请求json数据串的方式代替传统返回jspview.     3.使用Mybatis代替hibernate 在这些要求的基础上,做了一些尝试.    现在将配置文件整理如下:   目录结构如下:    1.web.xml <?xml version="1.0" encoding="UTF-8"?

Mybatis缓存(1)--------系统缓存及简单配置介绍

前言 Mybatis的缓存主要有两种: 系统缓存,也就是我们一级缓存与二级缓存: 自定义的缓存,比如Redis.Enhance等,需要额外的单独配置与实现,具体日后主要学习介绍. 在这里主要记录系统缓存的一些简单概念, 并没有涉及原理.其中会涉及Mybatis的相关配置以及生命周期等. 主要参考资料:<深入浅出Mybatis基础原理与实战>,http://www.mybatis.org/mybatis-3/zh/index.html 1.Mybatis简单配置介绍 本文介绍的是基于XML的配置

Mybatis框架的简单配置

Mybatis 的配置 1.创建项目(当然,这是废话) 2.导包 下载mybatis-3.2.0版:https://repo1.maven.org/maven2/org/mybatis/mybatis/ 下载commson-dbcp :http://maven.aliyun.com/nexus/#nexus-search;quick~dbcp 下载ojdbc :http://maven.aliyun.com/nexus/#nexus-search;quick~ojdbc6 3.配置 主配置文件(

Mybatis 3.2.7 简单入门Demo

对最新版本 Mybatis 3.2.7 做了一个demo,做个记录 需要的基本jar: mybatis-3.2.7.jar mysql-connector-java-5.1.27.jar 首先配置xml文件 mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config

saltstack安装和简单配置(一)

saltstack 安装和简单配置 在安装前,写了好多废话,都被我删除了,下面就开始搞吧. 环境: master:10.70.36.110 minion:10.70.36.103 一.安装: 现在centos下的yum源内有最新的salt-master源码包,安装的话,直接     yum -y install salt-master   #服务端         yum -y install salt-minion   #客户端 要使用yum安装,必须配置好epel源,可参考:        

bind的简单配置

bind的简单配置 摘要:DNS  bind简单配置        FQDN        http://www.178linux.com.  WWW是主机名  .178linux.COM.是私有域名  .com.是DNS一级域名 .是根域 DNS解析顺序 /etc/hosts→DNS缓存→DNS域服务器 主机优先查找本地的hosts(/etc/hosts)文件,没有想对应的记录则去查找本地DNS客户端的解析缓存库,缓存库没有想对应的记录则询问本地配置的DNS服务器(DNS服务器配饰文件 /et

MyBatis+Spring+Maven的简单整合Demo

本文主要是示范基于Maven的MyBatis+Spring的简单使用,其中主要涉及到的是MyBatis的配置使用,另外还有部分log4j的配置使用. 项目概述 本文项目是基于MyEclipse.JDK1.7.MySQL进行开发的,主要功能是通过MyBatis实现对User这个Bean类进行增删改查操作. 先展示下整个项目的结构: 新建web project 如图所示(勾选Maven支持): 一路next,勾选产生web.xml 最后生成的项目pom.xml文件中会有很多乱七八糟的<depende

DNS服务器之简单配置(一)

名词解释: 域名: 域名是域名系统名字空间中,从当前节点到根节点的路径上所有节点标记的点分顺序连接. 域: 域是指域名系统名字空间中的一个子集,也就是树形结构名字空间中的一颗子树.这个子树根节点的域名就是该域的名字, 域的级别: 顶级域(TLD, Top Level Domain)是指域名系统名字空间中根节点下最顶层的域.顶级域也称一级域,顶级域的下级就是二级域,二级域的下级就是三级域,以此类推.每个域都是其上级域的子域.最早的顶级域名,也是现在说的国际域名,按照用途分为的7个大类: .com:

红帽企业版6.5版中简单配置DHCP服务器

一.实验拓扑 RHEL6.5 --------------RHEL6.5服务端(vmnet4)---------------RHEL6.5客户端(vmnet4) 准备网络服务实验环境1. 安装2台RHEL6.5虚拟机        1)内存1G.硬盘80G.软件包(桌面.开发工具)        2)关闭防火墙.关闭SELinux机制 提示:修改 /etc/selinux/config,设置 SELINUX=permissive getenforce.setenforce        3)安装