1.新建一个Maven项目

2. 在pom.xml中进行配置,在pom.xml中配置的时候,需要网速好,当网速不是很好的时候,是加载不出Jar包的。

代码如下所示.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.whl</groupId>
<artifactId>MyBatis01</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>MyBatis01 Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.4</version>
</dependency>
</dependencies> <build>
<finalName>MyBatis01</finalName>
</build>
</project>

<dependencies>的文件配置参考http://mvnrepository.com/

如果不知如何添加,可在此链接中输入相应jar包的名称,然后选择正确的版本,就会有示例。

3.手动导入MySQL的jar包,因为网速不好,下载不了,故采用手动导入,然后右键该jar包,build path。

4.在resources下,新建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"> <configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/whl/mybatis/userMapper.xml" />
</mappers>
</configuration>

mappers中的映射要与下一步操作对应。

5.在Java文件夹下建立相应的包,并在此写相应的bean类,如下

package com.whl.mybatis;

public class User {
private int id;
private String username;
private String userpass;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpass() {
return userpass;
}
public void setUserpass(String userpass) {
this.userpass = userpass;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", userpass=" + userpass + "]";
}
public User(int id, String username, String userpass) {
super();
this.id = id;
this.username = username;
this.userpass = userpass;
}
public User() {
super();
} }

6.在Java文件下新建相关的包,新建一个userMapper.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="userMapper"> <!-- id是唯一标志符 -->
<!-- parameterType参数类型,指明插入时使用的参数类型 -->
<!-- useGeneratedKeys="true", 表示数据库的自动增长策略 -->
<insert id="save" parameterType="com.whl.mybatis.User"
useGeneratedKeys="true">
insert into user(username, password) values(#{username}, #{password})
</insert> <delete id="deleteById" parameterType="int">
delete from user where uid = #{value}
</delete> <delete id="deleteByIds">
delete from user where uid in
<foreach collection="list" item="uid" open="(" close=")" separator=",">
#{uid}
</foreach>
</delete> <select id="likeByName" resultType="com.whl.mybatis.User" parameterType="string">
select * from user where username like '%${value}%'
</select> <select id="findAll" resultType="com.whl.mybatis.User">
select uid, username, password from user
</select> <select id="findById" parameterType="int" resultType="com.whl.mybatis.User">
select * from user where uid = #{value}
</select> <update id="updateById" parameterType="com.whl.mybatis.User">
update user set username=#{username}, password=#{password} where uid = #{uid}
</update> <!--
update user set username = case uid
when
#{u.uid} then #{u.username}
end
where uid in (...)
-->
<update id="updateUserBatch" parameterType="list">
update user set username = CASE uid
<foreach collection="list" item = "u" separator=" ">
when #{u.uid} then #{u.username}
</foreach>
end
where uid in
<foreach collection="list" item="user" open="(" separator="," close=")">
#{user.uid}
</foreach>
</update>
</mapper>

7.测试:代码如下

package com.whl.mybatis.test;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test; import com.whl.mybatis.User; public class TestMyBatis { private SqlSession s = null;
private SqlSessionFactory ssf = null; @Before
public void init(){ String resourcesStr = "mybatis-config.xml";
try {
InputStream is = Resources.getResourceAsStream(resourcesStr); ssf = new SqlSessionFactoryBuilder().build(is); s = ssf.openSession();
}catch (Exception e) {
e.printStackTrace();
}
} @Test
public void testDeleteByIds(){
List<Integer> list = new ArrayList<>(); Collections.addAll(list, 1, 2, 3, 36, 39); // 以批量的处理方式打开数据库连接
ssf.openSession(ExecutorType.BATCH, false); int result = s.delete("myBatis.deleteByIds", list); s.commit(); System.out.println("result = " + result);
} @Test
public void testDeleteById(){
int result = s.delete("myBatis.deleteByIds.deleteById", 38);
s.commit();
System.out.println("result = " + result);
} @Test
public void testSelectByLike(){
String name = "user";
List<User> list = s.selectList("myBatis.deleteByIds.likeByName", name);
for (User u : list) {
System.out.println(u);
}
} @Test
public void testUpdateBatch(){ List<User> users = new ArrayList<>(); User u = null;
for(int i = 0; i <; i++){
u = new User(20+i, "name" + i, "pass" + i);
System.out.println(u);
users.add(u);
} int result = s.update("myBatis.deleteByIds.updateUserBatch", users); s.commit(); System.out.println("result = " + result);
} @Test
public void testUpdateUserById(){ User user = new User(38, "user38", "pass38"); int result = s.update("myBatis.deleteByIds.updateById", user); System.out.println("result = " + result);
} @Test
public void testFindById(){
User u = s.selectOne("myBatis.deleteByIds.findById", 32); System.out.println(u);
} @Test
public void testFindAll(){
List<User> list = s.selectList("myBatis.deleteByIds.findAll");
for (User u : list) {
System.out.println(u);
}
} @Test
public void testAdd(){
try { User user = new User(); user.setUsername("abc");
user.setPassword("123"); s.insert("myBatis.deleteByIds.save", user); s.commit();
s.close();
} catch (Exception e) {
e.printStackTrace();
}
} @After
public void destrory(){
if(s != null){
s.close();
s = null;
}
}
}

使用Maven简单配置Mybatis的更多相关文章

  1. maven简单配置

    maven-3.3.9下载 Maven是一个项目管理和综合工具.Maven提供了开发人员构建一个完整的生命周期框架.开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周 ...

  2. Maven 简单配置gpg

    1. 下载maven到指定目录,指定对应的gpg的执行命令所需要的属性.这里比如下载解压后的maven目录是: C:\maven-apache-3.3.2 ,那么配置文件目录是: C:\maven-a ...

  3. 学习myBatis - 如何配置myBatis

    这篇文章主要学习如何配置myBatis. 要学习新东西要讲究方法,要从三个层面去理解它:它是什么(what),为什么要学它(why),怎么用它(how).有了学习方法学习的效率才高. 1.myBati ...

  4. 记录:springmvc + mybatis + maven 搭建配置流程

    前言:不会配置 spring mvc,不知道为什么那样配置,也不知道从何下手,那么看这里就对了. 在 IDEA 中搭建 maven + springmvc + mybatis: 一.在 IDEA 中首 ...

  5. spring+mybatis的简单配置示例

    简单代码结构: //Book.java package com.hts.entity; public class Book { private String id; private String bo ...

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

    前言 Mybatis的缓存主要有两种: 系统缓存,也就是我们一级缓存与二级缓存: 自定义的缓存,比如Redis.Enhance等,需要额外的单独配置与实现,具体日后主要学习介绍. 在这里主要记录系统缓 ...

  7. Maven简单的配置Junit测试及使用简单的mock

    1.maven依赖配置如下 <dependency> <groupId>org.mockito</groupId> <artifactId>mockit ...

  8. maven+springmvc+spring+mybatis+velocity整合

      一.ssmm简介 ssmm是当下企业最常用的开发框架架构 maven:管理项目jar包,构建项目 spring:IOC容器,事务管理 springmvc:mvc框架 myBatis:持久层框架 v ...

  9. MyBatis学习(一)、MyBatis简介与配置MyBatis+Spring+MySql

    一.MyBatis简介与配置MyBatis+Spring+MySql 1.1MyBatis简介 MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架.MyBatis 摒除了大部分的J ...

随机推荐

  1. R语言基本语法

    R语言基本语法 基本数据类型 数据类型 向量 vector 矩阵 matrix 数组 array 数据框 data frame 因子 factor 列表 list 向量 单个数值(标量)没有单独的数据 ...

  2. JavaScript Ajax上传文件miniupload.js

    用到jquery和layer.js (function ($) { $.fn.miniupload = function (options, callback) { var jqDom = $(thi ...

  3. 【运维技术】Zookeeper单机以及集群搭建教程

    Zookeeper单机以及集群搭建教程 单机搭建 单机安装以及启动 安装zookeeper的前提是必须有java环境 # 选择目录进行下载安装 cd /app # 下载zk,可以去官方网站下载,自己上 ...

  4. Ubuntu Server VS Ubuntu Desktop区别

    今天有位朋友问我,Ubuntu Server 与 Ubuntu Desktop的区别在哪里!区别如下: SERVER没有GUI SERVER没有一堆的桌面软件 SERVER在编译时使用的参数不一样,会 ...

  5. STM32.ADC

    ADC实验 原理图: 1.ADC配置函数 /* enable adc1 and config adc1 to dma mode */ ADC1_Init(); /** * @brief ADC1初始化 ...

  6. LS1021ATWR开发板启动日志分析

    一.背景 LS1021ATWR开发板运行官方的openwrt系统 二.日志分析 2.1 linux相关日志 root@OpenWrt:/# reboot  重启 root@OpenWrt:/# [ 2 ...

  7. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none 解决方法

    参考:CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none 环境 主系统 OS X,虚拟机,Ubuntu 14.04 64bit. 问题描述 ...

  8. express 调优的一个过程和心得,不错的文章

    Netflix的软件工程师Yunong Xiao最近在公司的技术博客上写了一篇文章,分析了他所在的团队在将Netflix网站UI转移到Node.js上时遇到的延迟问题.在文章中他描述了找到问题根本原因 ...

  9. ruby on rails Mac 安装

    网上的资料有很多,但好多坑,有的已经过期了,有的不符合现整理了一下 貌似有的还跟os系统版本有关系,请勿照搬,根据实际情况安装 我的系统版本是10.12.3 ps:选择一个较好的网络,很多问题有得时候 ...

  10. 如果从excel表中导出insert-sql

    =CONCATENATE("INSERT INTO p_act_lottery(actId,status,grantWay,createTime,invalidTime,amount,pri ...