文档章节

MyBatis基于Maven的入门

新年
 新年
发布于 2016/07/15 14:19
字数 1139
阅读 22
收藏 2
点赞 0
评论 0

主要内容如下: 

  1. myBatis在maven中的配置  
  2. myBatis在工程中的config配置文件
  3. myBatis为Bean和表的映射文件
  4. myBatis基本的使用 

 

  • myBatis在maven中的配置,在pom.xml中增加内容

         1. 增加依赖 , mybatis的,还有mysql的驱动的,servlet的, 以及junit的

		<dependency>            <!-- mybatis的依赖 -->
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.2.8</version>
		</dependency>
		<dependency>       <!-- mysql的驱动的依赖 -->
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.6</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.0.1</version>
			<scope>provided</scope> <!-- 只在编译时和测试时运行的依赖 -->
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>

            2.增加插件

			<plugin>
				<groupId>org.mybatis.generator</groupId>
				<artifactId>mybatis-generator-maven-plugin</artifactId>
				<version>1.3.2</version>
				<configuration>
					<verbose>true</verbose>
					<overwrite>true</overwrite>
				</configuration>
			</plugin>

 

  • myBatis在工程中的config配置文件,在java代码的根目录下创建mybatis-config.xml

         1. jdbc需要的配置文件:

username=wxn
password=wxn123
url=jdbc:mysql://localhost:3306/simple_shop
driver=com.mysql.jdbc.Driver

         2. mybatis-config.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">
	
	<!--  1. 配置数据库的配置 -->
<configuration>
	<properties resource="jdbc.properties" />
	<typeAliases> <!-- 这一条配置必须在properties和settings配置之后 -->
         <!--为bean的映射文件中的入参出参指定别名,则入参可以不用输入类的全名称了 -->
		 <typeAlias type="cn.feezu.wxn.domain.User" alias="User"/>
	</typeAliases>
	<environments default="development">  <!-- 环境可以配置多个,以便不同需要时可以任意切换 -->
		<environment id="development">
			<!--  事务管理 -->
			<transactionManager type="JDBC"></transactionManager>
			<dataSource type="POOLED">
				<property name="driver" value="${driver}"/>
				<property name="url" value="${url}"/>
				<property name="username" value="${username}"/>
				<property name="password" value="${password}"/>
			</dataSource>
		</environment>
	</environments>	
	<mappers>  <!-- 指定映射文件的路径位置 -->
		<mapper resource="cn/feezu/wxn/domain/User.xml"/>
	</mappers>
</configuration>
  •  myBatis为Bean和表的映射文件

        1.假设已经创建了一个javabean 为User

package cn.feezu.wxn.domain;

import java.util.List;

public class User {
	private int id;
	private String username;
	private String password;
	private String nickname;
	private int type;
	
	//不做一这一方的映射
	private List<Address> addresses;
	
    //setter 和 getter  ..........
}

     2.而且已经存在一个数据库simple_shop, 以及表s_user,如下是sql语句

drop database if exists simple_shop;
create database simple_shop;
grant all on simple_shop.* to 'wxn'@'localhost';
## 密码是wxn123
use simple_shop;

create table s_user(
	id int(11) primary key auto_increment,
	username varchar(100),
	password varchar(100),
    nickname varchar(100),
	type int(5)
);

create table s_address(
	id int(11) primary key auto_increment,
	name varchar(255),
	phone varchar(100),
	postcode varchar(100),
	reciver varchar(100),
	user_id int(11),
	constraint foreign key (user_id) references s_user(id)
);

     3. 在User.java的同目录中创建一个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">

<mapper namespace="cn.feezu.wxn.domain.User"> <!-- 这里指定namespace名同javabean -->
<!--<mapper namespace="cn.feezu.wxn.mapper.UserMapper"> --><!-- 使用Mapper接口 -->
    <!-- 这里的入参为User,使用的是config文件中指定的别名 -->
	<insert id="add" parameterType="User">
		insert into s_user(username,
		password, nickname, type)
		value(#{username}, #{password}, #{nickname},
		#{type});
	</insert>

	<update id="update" parameterType="User">
		update s_user set
		password=#{password}, nickname=#{nickname},
		username=#{username},
		type=#{type}
	</update>

	<delete id="delete" parameterType="Integer">
		delete from s_user where
		id=#{id};
	</delete>
    <!-- 这里的出参为User,使用的是config文件中指定的别名 -->
	<select id="select" parameterType="int" resultType="User">
		select * from
		s_user where id=#{id};
	</select>
</mapper>
  • myBatis基本的使用

        1. MyBatis使用SqlSession来控制事务,而SqlSession需要使用工厂模式创建,而SqlSession工厂的创建需要mybatis的配置文件作为资源来构建,抽取这个过程,得到一个MyBatisUtils的工具类.

package cn.feezu.wxn.utils;

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;

public class MyBatisUtil {
	private static SqlSessionFactory factory;
	static{
		try {
			InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
			factory = new SqlSessionFactoryBuilder().build(resourceAsStream);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public static SqlSession openSession(){
		return factory.openSession();
	}
	
	public static void closeSession(SqlSession session){
		if (session != null) {
			session.close();			
		}
	}
}

    2. 那么创建测试方法来检验mybatis的配置是否生效

	@Test
	public void testUserAdd() {
		SqlSession session = null;
		try {
			session = MyBatisUtil.openSession();
			// 调用mapper文件插入数据,调用之前需要将mapper文件配置到mybatis-config.xml文件中
			User user = new User();
			user.setNickname("大刀王五");
			user.setPassword("123123");
			user.setUsername("wangwu");
			user.setType(1);
			//注意insert方法第一个参数
			//session.insert("cn.feezu.wxn.domain.User.add", user);
			session.insert(User.class.getName() + ".add", user);
			session.commit();  //提交事务
		} catch (Exception e) {
			e.printStackTrace();
			session.rollback(); // 事务提交失败,回滚
		} finally {
			MyBatisUtil.closeSession(session); //关闭session
		}
	}

     3. 使用Mapper接口

        1.对应User.xml中的增删改查,可以创建对应的Mapper接口,UserMapper.java,而不需要实现

package cn.feezu.wxn.mapper;

import cn.feezu.wxn.domain.User;

/**
 * 为User.xml增加接口方法
 * @author wangxn
 *
 */
public interface UserMapper {

	public void add(User user);
	
	public void update(User user);
	
	public void delete(Integer id);
	
	public User select(int id);
}

      2. 创建了接口之后, 那么在javabean的映射文件中就可以替换mapper标签为中的namespace为Mapper接口了,其他配置不变

<mapper namespace="cn.feezu.wxn.mapper.UserMapper">

     3. 在代码中使用时,就可以不直接使用session了,而是用Mapper来处理,好处是不用使用字符串传参防止出错了

	@Test
	public void testUserAdd(){
		SqlSession session = null;
		try {
			session = MyBatisUtil.openSession();
			
			User user = new User();
			user.setUsername("zhangfei");
			user.setNickname("zhangyide");
			user.setPassword("123123");
			user.setType(2);
			
			session.getMapper(UserMapper.class).add(user);
			
			session.commit();
		} catch (Exception e) {
			e.printStackTrace();
			session.rollback();
		} finally {
			MyBatisUtil.closeSession(session);
		}
	}

 

© 著作权归作者所有

共有 人打赏支持
新年
粉丝 7
博文 83
码字总数 45935
作品 0
海淀
程序员
MyBatis:快速入门实例 HelloWorld

一、简介 MyBatis是一个轻量级的持久层框架,它可以帮我们省去繁杂的JDBC操作,包括获取数据库连接、设置参数、处理结果集、事务管理等等。通过XML配置或注解,即可实现简单的完成原本复杂的...

kolbe
2015/09/18
3.1K
0
黄勇/smart-framework

Smart Framework 简介 1. 它是一款轻量级 Java Web 框架 内置 IOC、AOP、ORM、DAO、MVC 等特性 基于 Servlet 3.0 规范 使用 Java 注解取代 XML 配置 2. 它使应用充分做到“前后端分离” 客户...

黄勇
2013/09/23
0
0
LeeCX - 开源后台管理系统简单介绍

我们在github上开源了一个后台管理系统,使用了前端css框架并且简单的封装了一下,技术的将会不间断更新,详细可以点击原文链接。具体介绍如下: LeeCX 开源后台管理系统,前端基于bootstrap...

风间影月
2017/09/20
0
0
MyBatis学习笔记---入门

MyBatis学习笔记 一、数据库与数据表的创建 1.创建数据库 2.创建数据表

错过的小猴子
06/27
0
0
Mybatis 分页插件 3.7.4 发布

Mybatis分页插件 - PageHelper 如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件。 分页插件支持任何复杂的单表、多表分页,部分特殊情况请看重要提示。 想要使用分页...

Liuzh_533
2015/05/26
2.1K
16
SpringBoot入门之基于XML的Mybatis

上一博客介绍了下SpringBoot基于注解引入Mybatis,今天介绍基于XML引入Mybatis。还是在上一篇demo的基础上进行修改. 一、Maven引入 这个与上一篇的一样,需要引入mybatis相关和mysql相关的,这...

社会主义接班人
07/11
0
0
springmvc学习笔记(6)-springmvc整合mybatis(IDEA中通过maven构建

springmvc学习笔记(6)-springmvc整合mybatis(IDEA中通过maven构建) 标签: springmvc mybatis [TOC] 本文主要展示如何在intellij IDEA中通过maven构建springmvc+mybatis框架的开发环境。 需求...

brianway
2016/03/10
432
0
Mybatis 分页插件 3.7.3 发布

Mybatis分页插件 - PageHelper 如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件。 分页插件支持任何复杂的单表、多表分页,部分特殊情况请看重要提示。 想要使用分页...

Liuzh_533
2015/05/22
5.8K
32
mybatis配置oracle时,自己遇到问题

首先说下mybatis配置oracle的配置文件,mybatis-config.xml <configuration> </configuration> 看大家的都直接是这个样子的,但是自己建立数据库的时候有些地方是需要改动的,首先,driver是...

lar555
2016/05/31
93
0
Spring 的学习资料汇总

1.Spring框架快速入门之简介(http://blog.chinaunix.net/uid-12306154-id-1747386.html?bsh_bid=266894719) 2.Spring简单入门实例(http://blog.csdn.net/oscar999/article/details/9122415)......

IT追寻者
2016/07/17
54
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

SpringBoot | 第十章:Swagger2的集成和使用

前言 前一章节介绍了mybatisPlus的集成和简单使用,本章节开始接着上一章节的用户表,进行Swagger2的集成。现在都奉行前后端分离开发和微服务大行其道,分微服务及前后端分离后,前后端开发的...

oKong
今天
9
0
Python 最小二乘法 拟合 二次曲线

Python 二次拟合 随机生成数据,并且加上噪声干扰 构造需要拟合的函数形式,使用最小二乘法进行拟合 输出拟合后的参数 将拟合后的函数与原始数据绘图后进行对比 import numpy as npimport...

阿豪boy
今天
4
0
云拿 无人便利店

附近(上海市-航南路)开了家无人便利店.特意进去体验了一下.下面把自己看到的跟大家分享下. 经得现场工作人员同意后拍了几张照片.从外面看是这样.店门口的指导里强调:不要一次扫码多个人进入....

周翔
昨天
1
0
Java设计模式学习之工厂模式

在Java(或者叫做面向对象语言)的世界中,工厂模式被广泛应用于项目中,也许你并没有听说过,不过也许你已经在使用了。 简单来说,工厂模式的出现源于增加程序序的可扩展性,降低耦合度。之...

路小磊
昨天
172
1
npm profile 新功能介绍

转载地址 npm profile 新功能介绍 npm新版本新推来一个功能,npm profile,这个可以更改自己简介信息的命令,以后可以不用去登录网站来修改自己的简介了 具体的这个功能的支持大概是在6这个版...

durban
昨天
1
0
Serial2Ethernet Bi-redirection

Serial Tool Serial Tool is a utility for developing serial communications, custom protocols or device testing. You can set up bytes to send accordingly to your protocol and save......

zungyiu
昨天
1
0
python里求解物理学上的双弹簧质能系统

物理的模型如下: 在这个系统里有两个物体,它们的质量分别是m1和m2,被两个弹簧连接在一起,伸缩系统为k1和k2,左端固定。假定没有外力时,两个弹簧的长度为L1和L2。 由于两物体有重力,那么...

wangxuwei
昨天
0
0
apolloxlua 介绍

##项目介绍 apolloxlua 目前支持javascript到lua的翻译。可以在openresty和luajit里使用。这个工具分为两种模式, 一种是web模式,可以通过网页使用。另外一种是tool模式, 通常作为大规模翻...

钟元OSS
昨天
2
0
Mybatis入门

简介: 定义:Mybatis是一个支持普通SQL查询、存储过程和高级映射的持久层框架。 途径:MyBatis通过XML文件或者注解的形式配置映射,实现数据库查询。 特性:动态SQL语句。 文件结构:Mybat...

霍淇滨
昨天
2
0
开发技术瓶颈期,如何突破

前言 读书、学习的那些事情,以前我也陆续叨叨了不少,但总觉得 “学习方法” 就是一个永远在路上的话题。个人的能力、经验积累与习惯方法不尽相同,而且一篇文章甚至一本书都很难将学习方法...

_小迷糊
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部