使用Maven简单配置Mybatis
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的更多相关文章
- maven简单配置
maven-3.3.9下载 Maven是一个项目管理和综合工具.Maven提供了开发人员构建一个完整的生命周期框架.开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周 ...
- Maven 简单配置gpg
1. 下载maven到指定目录,指定对应的gpg的执行命令所需要的属性.这里比如下载解压后的maven目录是: C:\maven-apache-3.3.2 ,那么配置文件目录是: C:\maven-a ...
- 学习myBatis - 如何配置myBatis
这篇文章主要学习如何配置myBatis. 要学习新东西要讲究方法,要从三个层面去理解它:它是什么(what),为什么要学它(why),怎么用它(how).有了学习方法学习的效率才高. 1.myBati ...
- 记录:springmvc + mybatis + maven 搭建配置流程
前言:不会配置 spring mvc,不知道为什么那样配置,也不知道从何下手,那么看这里就对了. 在 IDEA 中搭建 maven + springmvc + mybatis: 一.在 IDEA 中首 ...
- spring+mybatis的简单配置示例
简单代码结构: //Book.java package com.hts.entity; public class Book { private String id; private String bo ...
- Mybatis缓存(1)--------系统缓存及简单配置介绍
前言 Mybatis的缓存主要有两种: 系统缓存,也就是我们一级缓存与二级缓存: 自定义的缓存,比如Redis.Enhance等,需要额外的单独配置与实现,具体日后主要学习介绍. 在这里主要记录系统缓 ...
- Maven简单的配置Junit测试及使用简单的mock
1.maven依赖配置如下 <dependency> <groupId>org.mockito</groupId> <artifactId>mockit ...
- maven+springmvc+spring+mybatis+velocity整合
一.ssmm简介 ssmm是当下企业最常用的开发框架架构 maven:管理项目jar包,构建项目 spring:IOC容器,事务管理 springmvc:mvc框架 myBatis:持久层框架 v ...
- MyBatis学习(一)、MyBatis简介与配置MyBatis+Spring+MySql
一.MyBatis简介与配置MyBatis+Spring+MySql 1.1MyBatis简介 MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架.MyBatis 摒除了大部分的J ...
随机推荐
- 非线性方程(组):一维非线性方程(一)二分法、不动点迭代、牛顿法 [MATLAB]
1. 二分法(Bisection) 1) 原理 [介值定理] 对于连续的一元非线性函数,若其在两个点的取值异号,则在两点间必定存在零点. [迭代流程] 若左右两端取值不同,则取其中点,求其函数值,取中 ...
- PHP保存Base64图片base64_decode的问题 文件打不开的问题
PHP对Base64的支持非常好,有内置的base64_encode与base64_decode负责图片的Base64编码与解码. 编码上,只要将图片流读取到,而后使用base64_encode进 ...
- oracle中 start with .. connect by prior.. 用法简介
我们经常会将一个比较复杂的目录树存储到一个表中.或者将一些部门存储到一个表中,而这些部门互相有隶属关系.这个时候你就会用到connect by prior start with.oracle 提供了s ...
- SQL Server System.Data.SqlClient.SqlException:已成功于服务器建立连接,但是在 登录前的握手期间发生错误
一.错误描述 错误名称如上.整体错误如下: System.Data.EntityException 基础提供程序在Open上失败--> System.Data.SqlClient.SqlExce ...
- 2017 java期末上机练习
仅供参考! 一.最大值.最小值.平均数 package examination; import java.util.Arrays; import java.util.Scanner; /** * 1. ...
- 20145221 《Java程序设计》第一周学习总结
20145221 <Java程序设计>第一周学习总结 教材学习内容总结 第一周内容已在假期完成,详见博客: Hello Java! 开源中国的代码托管 代码调试中的问题和解决过程 第一周内 ...
- notepad++下载32位,安装插件管理
下载32位地址: https://notepad-plus-plus.org/download/v7.6.4.html 下载插件: 链接: https://pan.baidu.com/s/1tRSo4 ...
- [SpringBoot] - 配置文件的多种形式及JSR303数据校验
Springboot配置文件: application.yml application.properties(自带) yml的格式写起来稍微舒服一点 在application.properties ...
- Hadoop-1.0.4集群搭建笔记
这篇文章介绍的是简单的配置Hadoop集群的方法,适合实验和小型项目用,正式运行的集群需要用更正规的方法和更详细的参数配置,不适合使用这篇文章. 相关随笔: 用python + hadoop stre ...
- php特级课---5、网络数据转发原理
php特级课---5.网络数据转发原理 一.总结 一句话总结: OSI七层模型 路由器 交换机 ARP 代理ARP 1.OSI7层模型? 电缆 MAC地址 ip 端口 应用 1层 通信电缆 2层 原M ...