mybatis快速搭建
结构图

1.创建maven项目
2.引入依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version> RELEASE</version>
</dependency> <dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
<!--日志约束-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version> RELEASE</version>
</dependency>
3.配置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>
<!--配置别名-->
<typeAliases>
<package name="com.sf.wj.domain"/>
</typeAliases>
<!--数据源配置-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/company?serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments> <!--资源引用-->
<mappers>
<mapper resource="mappers/UserMapper.xml"/>
</mappers> </configuration>
mybatis-config配置文件,要按照一定的顺序配置

4.数据库对应的实体类
public class User {
private int id;
private String username;
private String password;
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 getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
5.创建mapper接口
package com.sf.wj.mapper;
import com.sf.wj.domain.User;
import java.util.List;
public interface UserMapper {
User queryById(int id);
void deleteById(int id);
List<User> queryAll();
void updateUser(User user);
void insertUser(User user);
List<User> queryByIds(int[] ids);
}
6.创建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="com.sf.wj.mapper.UserMapper">
<select id="queryById" parameterType="int" resultType="User">
select * from user where id = #{id}
</select> <delete id="deleteById" parameterType="Integer" >
delete from user where id = #{id}
</delete> <select id="queryAll" resultType="User">
select * from user
</select> <update id="updateUser" parameterType="User">
update user set username = #{username},password = #{password} where id=#{id}
</update> <insert id="insertUser" parameterType="User">
insert into user (id,username,password) values (#{id},#{username},#{password})
</insert>
<!--按多个id查找用户 foreach-->
<select id="queryByIds" resultType="User">
select * from user where id in
<foreach collection="array" open="(" close=")" separator="," item="id">
#{id}
</foreach>
</select>
</mapper>
7.测试用例
package com.sf.wj; import com.sf.wj.domain.User;
import com.sf.wj.mapper.UserMapper;
import org.apache.ibatis.io.Resources;
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 java.io.IOException;
import java.io.InputStream;
import java.util.List; public class UserTest {
private UserMapper mapper;
private SqlSession sqlSession;
private InputStream inputStream;
@Before
public void setUp() throws IOException {
String rusource = "mybatis-config.xml";
inputStream = Resources.getResourceAsStream(rusource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
//默认传入参数false,不自动提交
sqlSession = factory.openSession(false);
mapper = sqlSession.getMapper(UserMapper.class);
} @After
public void commit(){
try {
sqlSession.commit();
inputStream.close();
sqlSession.close();
} catch (IOException e) {
e.printStackTrace();
}
} @Test
public void queryByIdTest(){
User user = mapper.queryById(1);
System.out.println(user);
}
@Test
public void queryAllTest(){
List<User> user = mapper.queryAll();
System.out.println(user);
}
@Test
public void deleteTest(){
mapper.deleteById(1);
}
@Test
public void updateTest(){
User user=new User();
user.setId(1);
user.setPassword("qwert");
user.setUsername("jg");
mapper.updateUser(user);
} @Test
public void insertTest(){
User user=new User();
user.setId(3);
user.setPassword("369");
user.setUsername("zs");
mapper.insertUser(user);
}
//多个id查找
@Test
public void queryByIdsTest(){
List<User> list = mapper.queryByIds(new int[]{1, 2, 3});
System.out.println(list);
}
}
mybatis快速搭建的更多相关文章
- 快速搭建一个Spring Boot + MyBatis的开发框架
前言:Spring Boot的自动化配置确实非常强大,为了方便大家把项目迁移到Spring Boot,特意总结了一下如何快速搭建一个Spring Boot + MyBatis的简易文档,下面是简单的步 ...
- SpringBoot+SpringMVC+MyBatis快速整合搭建
作为开发人员,大家都知道,SpringBoot是基于Spring4.0设计的,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程.另外Spr ...
- SSM(SpringMVC+Spring+MyBatis)三大框架使用Maven快速搭建整合(实现数据库数据到页面进行展示)
本文介绍使用SpringMVC+Spring+MyBatis三大框架使用Maven快速搭建一个demo,实现数据从数据库中查询返回到页面进行展示的过程. 技术选型:SpringMVC+Spring+M ...
- Spring-Boot快速搭建web项目详细总结
最近在学习Spring Boot 相关的技术,刚接触就有种相见恨晚的感觉,因为用spring boot进行项目的搭建是在太方便了,我们往往只需要很简单的几步,便可完成一个spring MVC项目的搭建 ...
- 快速搭建ssm框架
快速搭建SSM框架 因为最近有很多朋友问我自己的项目搭建的不够完善,并且经常出现一些小问题,那么今天我又整理了一下文档教大家如何快速搭建SSM框架我是用 eclipse搭建的,如果想用idear的话我 ...
- Spring-Data-JPA尝鲜:快速搭建CRUD+分页后台实例
前言:由于之前没有接触过Hibernate框架,但是最近看一些博客深深被它的"效率"所吸引,所以这就来跟大家一起就着一个简单的例子来尝尝Spring全家桶里自带的JPA的鲜 Spr ...
- 使用Springboot快速搭建SSM框架
Spring Boot设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 一.环境准备 Idea 2017 或 201 ...
- 在线官网Spring Initializr 或 IntelliJ IDEA 快速搭建springboot项目
Spring Boot是由Pivotal团队提供的全新框架,设计目的是用来简化新Spring应用的初始搭建以及开发过程.它主要推崇的是'消灭配置’,实现零配置. 那么,如何快速新建一个一个spring ...
- 快速搭建一个SSM框架demo
我之所以写一个快速搭建的demo,主要想做一些容器的demo,所以为了方便大家,所以一切从简,简单的3层架构 先用mysql的ddl,后期不上oracle的ddl ; -- ------------- ...
随机推荐
- Mac利用分屏spliter
有时候一台电脑学习很鸡肋,特别是在照葫芦画瓢阶段,只能来回的切换页面,效率极其低下,一直希望可以将其分别显示,互不干扰.今天在mac发现此方法,大大提高了学习效率,所以今天分享给大家: 方法一:长按窗 ...
- php操作redis常用方法代码示例
redis 的连接 描述:实例连接到一个Redis. 参数:host: string,port: int 返回值:BOOL 成功返回:TRUE;失败返回:FALSE $redis = new Red ...
- LC: 404.左叶子节点
计算给定二叉树的所有左叶子之和. 示例: / \ 9 20 / \ 15 7 ,所以返回 24 解析 我们需要找到这样的节点 属于叶子节点 属于父节点的左子节点 方法一:用栈,dfs遍历,用全局变量r ...
- 在 IntelliJ IDEA 中这样使用 Git,效率提升2倍以上
1.Git简介 Git是目前流行的分布式版本管理系统.它拥有两套版本库,本地库和远程库,在不进行合并和删除之类的操作时这两套版本库互不影响.也因此其近乎所有的操作都是本地执行,所以在断网的情况下任然可 ...
- 【Flutter学习】页面布局之其它布局处理
一,概述 Flutter中拥有30多种预定义的布局widget,常用的有Container.Padding.Center.Flex.Row.Colum.ListView.GridView.按照< ...
- windows10下安装Mysql 5.6(zip格式安装包)
5.6的安装包是一个zip文件,里面包含了data(有表空间文件和日志文件),bin等文件夹.不同于以往的只需要双击安装.msi就行了.因此,在此记录下安装包是.zip时的安装步骤. 1下载 进htt ...
- Postgresql物理存储结构
Postgresql目前不支持使用裸设备和块设备. Postgresql的属于 Relation:表示表或索引. Tuple:表示表中的行. Page:表示在磁盘中的数据块. Buffer:表示在内存 ...
- windows shell命令和快捷键
// 这下面的宏,貌似都能通过shell:调用 // SHGetSpecialFolderLocation // // Caller should use SHGetMalloc to obtain ...
- 用iptables实现代理上网
环境:内网:eth1:192.168.2.0/24外网:eth0:10.17.0.111用iptables实现NATSNAT:改变数据包的源地址.防火墙会使用外部地址,替换数据包的本地网络地址.这样使 ...
- 基于turtle库的七段数码管绘制
·文章结构 >样例及概览 >函数框架分析 >功能发展·样例及概览 七段数码管,是信号灯.电子表等很多设备的显示形式.而利用python的turtle库,我们也可以模拟着写出一个动态生 ...