01—mybatis开山篇
CREATE TABLE `tb_user` (
`Id` BIGINT(20) NOT NULL AUTO_INCREMENT,
`Username` VARCHAR(50) COLLATE utf8_bin DEFAULT NULL,
`Password` VARCHAR(50) COLLATE utf8_bin DEFAULT NULL,
`Nickname` VARCHAR(50) COLLATE utf8_bin DEFAULT NULL,
`Type` INT(11) DEFAULT NULL,
PRIMARY KEY (`Id`)
)
package org.mybatis.test.model; public class User {
private int id;
private String username;
private String password;
private String nickname;
private int type;
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;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
}
<?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="org.mybatis.test.model.User">
<insert id="add" parameterType="org.mybatis.test.model.User">
insert into tb_user (username,password,nickname,type)
value(#{username},#{password},#{nickname},#{type})
</insert>
<update id="update" parameterType="org.mybatis.test.model.User">
update tb_user set password=#{password},nickname=#{nickname},type=#{type} where id=#{id}
</update> <delete id="delete" parameterType="int">
delete from tb_user where id=#{id}
</delete> <select id="load" parameterType="int" resultType="org.mybatis.test.model.User">
select * from tb_user where id=#{id}
</select> <select id="list" resultType="org.mybatis.test.model.User">
select * from tb_user
</select>
</mapper>
username=root
password=123456
url=jdbc:mysql://localhost:3306/mybatistest
driver=com.mysql.jdbc.Driver
<?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>
<properties resource="jdbc.properties"/>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<!-- 将mapper文件加入到配置文件中 -->
<mappers>
<mapper resource="org/mybatis/test/model/User.xml"/>
</mappers>
</configuration>
package org.mybatis.test.test; import java.io.IOException;
import java.io.InputStream;
import java.util.List;
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.Test;
import org.mybatis.test.model.User; public class TestMyBatis {
@Test
public void testInsertUser() {
try {
//1、创建配置文件(mybatis-config.xml)的输入流
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//2、创建SQLSessionFactory
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
//3、创建SQLSessioin
SqlSession session = factory.openSession();
//4、调用mapper文件插入数据(调用之前需要将mapper文件加入到mybatis-config.xml中)
User u = new User();
u.setNickname("小助理001");
u.setPassword("123456");
u.setUsername("zhuli001");
u.setType(0);
session.insert("org.mybatis.test.model.User.add", u);
session.commit();
session.close();
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void testUpdateUser() {
try {
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = factory.openSession();
User u = new User();
u.setNickname("小猪手001");
u.setPassword("111111");
u.setType(0);
u.setUsername("zhushou");
u.setId(1);
session.update("org.mybatis.test.model.User.update",u);
session.commit();
session.close();
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void testDeleteUser() {
try {
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory f = new SqlSessionFactoryBuilder().build(is);
SqlSession session = f.openSession();
session.delete("org.mybatis.test.model.User.delete",2);
session.commit();
session.close();
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void testLoad() {
SqlSession session = null;
try{
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory f = new SqlSessionFactoryBuilder().build(is);
session = f.openSession();
User u = (User)session.selectOne(User.class.getName()+".load", 1);
System.out.println(u.getNickname());
}
catch (IOException e) {
e.printStackTrace();
}
finally {
session.close();
}
} @Test
public void testList() {
SqlSession session = null;
try{
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory f = new SqlSessionFactoryBuilder().build(is);
session = f.openSession();
List<User> us = session.selectList(User.class.getName()+".list", null);
for (User u : us) {
System.out.println(u.getId()+"-"+u.getUsername()+"-"+u.getNickname()); //逐个输出数组元素的值
}
} catch (IOException e) {
e.printStackTrace();
}
finally {
session.close();
}
} }
01—mybatis开山篇的更多相关文章
- 01—EF开山篇,ORM介绍
我是2014年接触的EF,用了一年多,感觉非常的方便,现在的公司没有使用,最近有朋友接了两个项目找我帮忙,都想使用EF,自己也有断时间没有使用,借着这个机会复习下.Entity Framework,简 ...
- [高并发]Java高并发编程系列开山篇--线程实现
Java是最早开始有并发的语言之一,再过去传统多任务的模式下,人们发现很难解决一些更为复杂的问题,这个时候我们就有了并发. 引用 多线程比多任务更加有挑战.多线程是在同一个程序内部并行执行,因此会对相 ...
- Struts2开山篇【引入Struts、自定义MyStruts框架】
前言 这是Strtus的开山篇,主要是引入struts框架-为什么要引入struts,引入struts的好处是什么-. 为什么要引入struts? 首先,在讲解struts之前,我们来看看我们以前写的 ...
- 【DevOps】团队敏捷开发系列--开山篇
随着软件发布迭代的频率越来越高,传统的「瀑布型」(开发-测试-发布)模式已经不能满足快速交付的需求.2009 年左右 DevOps 应运而生,开发运维一体化,通过自动化工具与流程让整个软件开发构建.测 ...
- WCF开山篇__图片传输
WCF开山篇__图片传输 一. 简介 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序接口,可以翻译为Windows通讯接口,它是. ...
- MyBatis高级篇之整合ehcache缓存框架
MyBatis高级篇之整合ehcache缓存框架 2017-09-01 0 Comments 1,671 Views 0 Times 一.前言 MyBatis为我们提供了Cache接口,也提供 ...
- 01: tornado基础篇
目录:Tornado其他篇 01: tornado基础篇 02: tornado进阶篇 03: 自定义异步非阻塞tornado框架 04: 打开tornado源码剖析处理过程 目录: 1.1 Torn ...
- Mybatis 实用篇(四)返回值类型
Mybatis 实用篇(四)返回值类型 一.返回 List.Map List<User> getUsers(); <select id="getUsers" re ...
- Mybatis 实用篇(三)参数处理
Mybatis 实用篇(三)参数处理 sql 语句中的参数 parameterType 可以省略不写. 一.参数封装 1.1 单个参数处理 public interface UserMapper { ...
随机推荐
- TensorFlow.环境_avx2
1.缘由: 按照之前的步骤,在Win10的笔记本上就是不行: 1.1.jupyter notebook的相关界面,如下图所示: ZC:感觉 应该还是 tensorflow的问题 1.2.然后 各种测试 ...
- cenos 防火墙操作
iptables防火墙 1.基本操作 # 查看防火墙状态 service iptables status # 停止防火墙 service iptables stop # 启动防火墙 servi ...
- [LuoguP2157][SDOI2009]学校食堂_状压dp
学校食堂 题目链接:https://www.luogu.org/problem/P2157 数据范围:略. 题解: 发现$B$特别小,很容易想到状压. 即在$dp$的时候弄出来$f_{(i,j,k)} ...
- lua语法介绍(二)
一.语法简要 在学习任何语法之前,我们都需要知道该门语言是怎样定义的,是怎样运行的,话说白了,就是到了人家的山头得唱人家山头的歌.下面介绍lua的语法 1.变量的定义 特点: 1.变量在使用前必须声明 ...
- mysql中的反引号``
[1]反引号`,数字1左边的符号.tab键上面的符号. 它是为了区分MYSQL的保留字与普通字符而引入的符号. 不加反引号建的表不能包含MYSQL保留字,否则出错 如上图,很明显的,如果我们直接建立名 ...
- HanLP-命名实体识别总结
人名识别 在HanLP中,基于角色标注识别了中国人名.首先系统利用隐马尔可夫模型标注每个词语的角色,之后利用最大模式匹配法对角色序列进行匹配,匹配上模式的即为人名.理论指导文章为:<基于角色标注 ...
- IDEA插件之PMD
1.是什么? PMD 是一个开源静态源代码分析器,它报告在应用程序代码中发现的问题.PMD包含内置规则集,并支持编写自定义规则的功能.PMD不报告编译错误,因为它只能处理格式正确的源文件.PMD报告的 ...
- 编写shell脚本实现对虚拟机cpu、内存、磁盘监控机制
一.安装Vmware,并通过镜像安装centos7. 二.安装xshell(可以不装,可以直接在虚拟机中直接进行以下步骤) 三.安装mail 一般Linux发送报警邮件通过本地邮箱或外部邮箱服务器,这 ...
- java如何读写json文件
在实际项目开发中,有时会遇到一些全局的配置缓存,最好的做法是配置redis数据库作为数据缓存,而当未有配置redis服务器时,读取静态资源文件(如xml.json等)也是一种实现方式,但是这有一个弊端 ...
- Windows Eclipse Scala的入门HelloWorld
[学习笔记] Windows Eclipse Scala的入门HelloWorld 有关带scala版本的eclipse4.7的下载, 你可以直接去: http://scala-ide.org/dow ...