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. [环境配置] 如何为Apache绑定多IP多域名

    在Apache服务器上绑定方法比较简单,主要因为Apache是个开源独立的服务器软件,而且支持跨平台安装和配置,支持丰富的API扩展,所以很多人对Apache的好感要甚于IIS,Apache的优点就不 ...

  2. 【转】ViewPager 一屏显示多个子页面

    一.概述 项目中遇到一个需求:ViewPager 一屏显示多个子页面.因为之前没有做过这样的界面,所以经历了些许小插曲,特以记之! 主要内容来自: http://blog.csdn.net/JM_be ...

  3. CentOS下安装JDK,Tomcat,Redis,Mysql,及项目发布

    上传文件到服务器,安装lrzsz , 可以将本地的文件上传到linux系统上. 如果是CentOS则可以用yum install lrzsz 命令安装,更方便. 或:yum -y install lr ...

  4. TED #06# Questioning the universe

    Stephen Hawking: Questioning the universe 1. 第一段: There is nothing bigger or older than the universe ...

  5. 通过自动回复机器人学Mybatis:MySQL脚本 + db >> dao >> service >> servlet

    留着参考 makeData.sql delimiter // create procedure make_data() begin declare i int ; do insert into mes ...

  6. java第四天

    p32~p36: 学习javadoc 1.第一步,打开一个一定规模的java项目 2.第二步,搭建测试环境 IntelliJ IDEA ——> Tools ——> Generate Jav ...

  7. LightOJ 1071 Baker Vai(拆点+最大费用流)题解

    题意:给一个n*m的方格,每个格子上都有一个数字表示价值,小A在左上角,他从左上角走到右下角只能向右或向下走,然后再从右下角走上左上角,这次只能向上或向左走,这两条路绝对没有重复,问你怎样走有最大价值 ...

  8. [kata](5kyu) 约瑟夫战死排序(排列)

    之前一直不懂,今天百度了下,发下kyu是级别的意思,dan是段的意思,级别数值越小越强,段数数值越大越强. 原题  https://www.codewars.com/kata/josephus-per ...

  9. 解决 E: Could not get lock /var/lib/apt/lists/lock

    参考:Unable to lock the administration directory (/var/lib/dpkg/) is another process using it? 在更换软件源时 ...

  10. 2012NOIP模拟试题

    做的时候觉得这套题好简单,结果一看发现是2012年的模拟题,估计就是普及+的难度吧,AK无压力 总结 第一题状压我智障的调了好几分钟,因为我的最终状态写的1<<n,智障了 第三题的dfs调 ...