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. C++ lamda、function、bind使用

    参考资料: http://blog.csdn.net/augusdi/article/details/11771699 lambda 表达式的简单语法如下:[capture] (parameters) ...

  2. 在线学习--online learning

    在线学习 online learning Online learning并不是一种模型,而是模型的训练方法.能够根据线上反馈数据,实时快速的进行模型调优,使得模型能够及时反映线上的变化,提高线上预测的 ...

  3. 记一次mysql启动不了的问题

    在linux上用的是xampp,mysql启动没有报任何错误,但就是查找不到进程,于是找mysql错误日志,日志在哪?在lampp/var/mysql 以.err结尾的文件里.里面内容如下; /opt ...

  4. 72. Edit Distance(编辑距离 动态规划)

    Given two words word1 and word2, find the minimum number of operations required to convert word1 to  ...

  5. 2018中国大学生程序设计竞赛 - 网络选拔赛 Solution

    A - Buy and Resell 题意:给出n个交易点,每次能够选择买或者卖,求获得最大利润 思路:维护两个优先队列,一个是卖,一个是替换,当价格差相同时,优先替换,因为次数要最少 #includ ...

  6. 2017-2018 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2017) Solution

    A - Airport Coffee 留坑. B - Best Relay Team 枚举首棒 #include <bits/stdc++.h> using namespace std; ...

  7. 20145104张家明 《Java程序设计》第5周学习总结

    20145104张家明 <Java程序设计>第5周学习总结 教材学习内容总结 第八章(概括为一下内容) 1.如果父类异常对象在子类异常前被捕捉,则catch子类异常对象的区块将永远不会被执 ...

  8. 20145325张梓靖 《Java程序设计》第3周学习总结

    20145325张梓靖 <Java程序设计>第3周学习总结 教材学习内容总结 类与对象 类,就相当于设计图纸,用"new"创建的对象,就是依据设计图做成的成品:设计图纸 ...

  9. SQL优化:清理生产环境中已失效字段基本步骤

    1.统计相应字段的数据情况(如:几年没更新,无数据等情况) 2.确认产品逻辑已无效(产品经理邮件确认) 3.数据备份 4.将数据清空(置为0或空) 5.测试环境中删除引用页面 6.修改定时程序,存储过 ...

  10. LA 6891 Money Transfers(最短路)

    https://vjudge.net/problem/UVALive-6891 题意: 给定一个加权无向图,还有起点和终点,现在有个SWERC公司,拥有图中的m个顶点,现在可以使图中的每一条边都加上k ...