一、创建maven工程

把依赖的包写在pom.xml中。保存后,工程会有错,需要在工程上右键选择“Maven-->Update Project”

pom.xml内容为

<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.mybatis</groupId>
<artifactId>example</artifactId>
<version>0.0.1-SNAPSHOT</version> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency> <dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency> <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency> <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency> <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.12</version>
</dependency> <dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies> <build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>

pom.xml

二、简单的例子

①创建数据库mybatis,创建表sys_user,sys_role,sys_user_role,并插入数据

DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户Id',
`user_name` varchar(50) DEFAULT NULL COMMENT '用户名',
`user_password` varchar(50) DEFAULT NULL COMMENT '密码',
`user_email` varchar(50) DEFAULT NULL COMMENT '邮箱',
`user_info` text COMMENT '简介',
`head_img` blob COMMENT '头像',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表'; INSERT INTO `sys_user` VALUES ('', 'admin', '', 'admin@mybatis.tk', '管理员', null, '2018-11-30 17:00:00');
INSERT INTO `sys_user` VALUES ('', 'test', '', 'test@mybatis.org', 'test info', 0x7B, '2018-12-05 13:45:45'); -- ----- CREATE TABLE `sys_role` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '角色Id',
`role_name` varchar(50) DEFAULT NULL COMMENT '用户名',
`enabled` int(11) DEFAULT NULL COMMENT '有效标识',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建人',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色表'; INSERT INTO `sys_role` VALUES ('', '管理员', '', '', '2018-11-30 17:05:00');
INSERT INTO `sys_role` VALUES ('', '普通用户', '', '', '2018-11-30 17:05:01'); -- ------ CREATE TABLE `sys_user_role` (
`user_id` bigint(20) DEFAULT NULL COMMENT '用户Id',
`role_id` bigint(20) DEFAULT NULL COMMENT '角色Id'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户角色关联表'; INSERT INTO `sys_user_role` VALUES ('', '');
INSERT INTO `sys_user_role` VALUES ('', '');
INSERT INTO `sys_user_role` VALUES ('', '');

db.sql

②创建mybatis配置文件mybatis-config.xml,位置src/main/resources下

<?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>
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<typeAliases>
<package name="org.mybatis.example.model"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC">
<property name="" value=""/>
</transactionManager>
<dataSource type="UNPOOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- <package name="org.mybatis.example.mapper"/> -->
<mapper resource="org/mybatis/example/mapper/UserMapper.xml"/>
<mapper resource="org/mybatis/example/mapper/RoleMapper.xml"/>
</mappers>
</configuration>

mybatis-config.xml

③创建model,SysUser,SysRole和SysUserRole,位置src/main/java下,包org.mybatis.example.model

package org.mybatis.example.model;

import java.util.Date;

public class SysUser {

    private Long id;
private String userName;
private String userPassword;
private String userEmail;
private String userInfo;
private byte[] headImg;
private Date createTime;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
public String getUserEmail() {
return userEmail;
}
public void setUserEmail(String userEmail) {
this.userEmail = userEmail;
}
public String getUserInfo() {
return userInfo;
}
public void setUserInfo(String userInfo) {
this.userInfo = userInfo;
}
public byte[] getHeadImg() {
return headImg;
}
public void setHeadImg(byte[] headImg) {
this.headImg = headImg;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
} }

SysUser.java

package org.mybatis.example.model;

import java.util.Date;

public class SysRole {

    private Long id;
private String roleName;
private int enabled;
private Long createBy;
private Date createTime;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public int getEnabled() {
return enabled;
}
public void setEnabled(int enabled) {
this.enabled = enabled;
}
public Long getCreateBy() {
return createBy;
}
public void setCreateBy(Long createBy) {
this.createBy = createBy;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
} }

SysRole.java

package org.mybatis.example.model;

public class SysUserRole {

    private Long userId;
private Long roleId;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId) {
this.roleId = roleId;
} }

SysUserRole.java

④创建映射的xml文件,UserMapper.xml,位置src/main/resources/org/mybatis/example/mapper下

<?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.example.mapper.UserMapper"> <select id="selectUserById" resultMap="selectUserMap">
select * from sys_user where id = #{id}
</select> <resultMap type="org.mybatis.example.model.SysUser" id="selectUserMap">
<id property="id" column="id" />
<result property="userName" column="user_name"/>
<result property="userPassword" column="user_password"/>
<result property="userEmail" column="user_email"/>
<result property="userInfo" column="user_info"/>
<result property="headImg" column="head_img" jdbcType="BLOB"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
</resultMap> </mapper>

UserMapper.xml

⑤创建Mapper的接口,UserMapper.java,位置src/main/java下,包org.mybatis.example.mapper

package org.mybatis.example.mapper;

import org.mybatis.example.model.SysUser;

public interface UserMapper {

    SysUser selectUserById(Long id);

}

UserMapper.java

⑥创建测试程序,TestSelectMapper.java,位置src/main/java下,包org.mybatis.example.app

package org.mybatis.example.app;

import java.io.IOException;
import java.io.Reader;
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.BeforeClass;
import org.junit.Test;
import org.mybatis.example.mapper.RoleMapper;
import org.mybatis.example.mapper.UserMapper;
import org.mybatis.example.model.SysRole;
import org.mybatis.example.model.SysUser; import junit.framework.Assert; public class TestSelectMapper { private static SqlSessionFactory sqlSessionFactory; @BeforeClass
public static void init() {
try {
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
} @Test
public void testSelectUserById() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
SysUser sysUser = userMapper.selectUserById(1L);
Assert.assertNotNull(sysUser);
Assert.assertEquals("admin", sysUser.getUserName());
System.out.println(sysUser.toString());
} finally {
sqlSession.close();
}
}
}

TestSelectMapper.java

三、综合增删改查

<?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.example.mapper.UserMapper"> <select id="selectUserById" resultMap="selectUserMap">
select * from sys_user where id = #{id}
</select> <resultMap type="org.mybatis.example.model.SysUser" id="selectUserMap">
<id property="id" column="id" />
<result property="userName" column="user_name"/>
<result property="userPassword" column="user_password"/>
<result property="userEmail" column="user_email"/>
<result property="userInfo" column="user_info"/>
<result property="headImg" column="head_img" jdbcType="BLOB"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
</resultMap> <select id="selectAllUsers" resultType="org.mybatis.example.model.SysUser">
select user_name userName, user_password userPassword,
user_email userEmail, user_info userInfo,
user_info userInfo, head_img headImg,
create_time createTime from sys_user
</select> <insert id="insertAUser">
insert into sys_user (id, user_name, user_password, user_email, user_info, head_img, create_time) values
(#{id}, #{userName}, #{userPassword}, #{userEmail}, #{userInfo}, #{headImg, jdbcType=BLOB},
#{createTime, jdbcType=TIMESTAMP})
</insert> <insert id="insertAUserWithoutId" useGeneratedKeys="true" keyProperty="id">
insert into sys_user (user_name, user_password, user_email, user_info, head_img, create_time) values
(#{userName}, #{userPassword}, #{userEmail}, #{userInfo}, #{headImg, jdbcType=BLOB}, #{createTime, jdbcType=TIMESTAMP})
</insert> <update id="updateAUser">
update sys_user set
user_name = #{userName},
user_email = #{userEmail},
user_info = #{userInfo},
create_time = #{createTime, jdbcType=TIMESTAMP}
where id = #{id}
</update> <delete id="deleteAUser">
delete from sys_user where id = #{id}
</delete> </mapper>

UserMapper.xml

package org.mybatis.example.mapper;

import java.util.List;

import org.mybatis.example.model.SysUser;

public interface UserMapper {

    SysUser selectUserById(Long id);
List<SysUser> selectAllUsers(); int insertAUser(SysUser sysUser);
int insertAUserWithoutId(SysUser sysUser); int updateAUser(SysUser sysUser);
int deleteAUser(Long id);
}

UserMapper.java

<?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.example.mapper.RoleMapper">
<select id="selectRolesByUserId" resultType="org.mybatis.example.model.SysRole">
select r.id,
r.role_name roleName,
r.enabled,
r.create_by createBy,
r.create_time createTime
from sys_user u
inner join sys_user_role ur on u.id = ur.user_id
inner join sys_role r on r.id = ur.role_id
where u.id = #{userId}
</select> <select id="selectRolesByUserIdAndRoleEnabled" resultType="org.mybatis.example.model.SysRole">
select r.id,
r.role_name roleName,
r.enabled,
r.create_by createBy,
r.create_time createTime
from sys_user u
inner join sys_user_role ur on u.id = ur.user_id
inner join sys_role r on r.id = ur.role_id
where u.id = #{userId} and r.enabled = #{enabled}
</select>
</mapper>

RoleMapper.xml

package org.mybatis.example.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.mybatis.example.model.SysRole; public interface RoleMapper { List<SysRole> selectRolesByUserId(Long id);
List<SysRole> selectRolesByUserIdAndRoleEnabled(
@Param("userId") Long userId,
@Param("enabled") int enabled);
}

RoleMapper.java

package org.mybatis.example.app;

import java.io.IOException;
import java.io.Reader;
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.BeforeClass;
import org.junit.Test;
import org.mybatis.example.mapper.RoleMapper;
import org.mybatis.example.mapper.UserMapper;
import org.mybatis.example.model.SysRole;
import org.mybatis.example.model.SysUser; import junit.framework.Assert; public class TestSelectMapper { private static SqlSessionFactory sqlSessionFactory; @BeforeClass
public static void init() {
try {
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
} @Test
public void testSelectUserById() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
SysUser sysUser = userMapper.selectUserById(1L);
Assert.assertNotNull(sysUser);
Assert.assertEquals("admin", sysUser.getUserName());
System.out.println(sysUser.toString());
} finally {
sqlSession.close();
}
} @Test
public void testSelectAllUsers() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<SysUser> sysUserList = userMapper.selectAllUsers();
Assert.assertNotNull(sysUserList);
Assert.assertTrue(sysUserList.size() > 0);
System.out.println(sysUserList.size());
} finally {
sqlSession.close();
}
} @Test
public void testSelectRolesByUserId() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
RoleMapper rolerMapper = sqlSession.getMapper(RoleMapper.class);
List<SysRole> sysRoleList = rolerMapper.selectRolesByUserId(1L);
Assert.assertNotNull(sysRoleList);
Assert.assertTrue(sysRoleList.size() > 0);
System.out.println(sysRoleList.size());
} finally {
sqlSession.close();
}
} }

TestSelectMapper.java

package org.mybatis.example.app;

import java.io.IOException;
import java.io.Reader;
import java.util.Date; 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.BeforeClass;
import org.junit.Test;
import org.mybatis.example.mapper.UserMapper;
import org.mybatis.example.model.SysUser; public class TestInsertMapper { private static SqlSessionFactory sqlSessionFactory; @BeforeClass
public static void init() {
try {
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
} @Test
public void testInsertAUser() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
SysUser sysUser = new SysUser();
sysUser.setId(2L);
sysUser.setUserName("test");
sysUser.setUserPassword("123456");
sysUser.setUserEmail("test@mybatis.org");
sysUser.setUserInfo("test info");
sysUser.setHeadImg(new byte[] {123});
sysUser.setCreateTime(new Date());
int insertResult = userMapper.insertAUser(sysUser);
System.out.println(insertResult);
} finally {
//sqlSession.rollback();
sqlSession.commit();
sqlSession.close();
}
} @Test
public void testInsertAUserWithoutId() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
SysUser sysUser = new SysUser();
sysUser.setUserName("test3");
sysUser.setUserPassword("123456");
sysUser.setUserEmail("test3@mybatis.org");
sysUser.setUserInfo("test3 info");
sysUser.setCreateTime(new Date());
int insertResult = userMapper.insertAUser(sysUser);
System.out.println(insertResult);
} finally {
//sqlSession.rollback();
sqlSession.commit();
sqlSession.close();
}
} @Test
public void testUpdateAUser() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
SysUser selectUser = userMapper.selectUserById(1003L);
selectUser.setUserName("test1003");
selectUser.setUserEmail("test1003@mybatis.org");
selectUser.setUserInfo("test1003 info");
selectUser.setCreateTime(new Date());
int updateResult = userMapper.updateAUser(selectUser);
System.out.println(updateResult);
} finally {
sqlSession.commit();
sqlSession.close();
}
} @Test
public void testDeleteAUser() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
int deleteResult = userMapper.deleteAUser(1003L);
System.out.println(deleteResult);
} finally {
sqlSession.commit();
sqlSession.close();
}
}
}

TestInsertMapper.java

package org.mybatis.example.app;

import java.io.IOException;
import java.io.Reader;
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.BeforeClass;
import org.junit.Test;
import org.mybatis.example.mapper.RoleMapper;
import org.mybatis.example.model.SysRole; public class TestParamMapper { private static SqlSessionFactory sqlSessionFactory; @BeforeClass
public static void init() {
try {
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
} @Test
public void testComplicatedSelect() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
List<SysRole> sysRoleList = roleMapper.selectRolesByUserIdAndRoleEnabled(1L, 1);
System.out.println(sysRoleList.size());
} finally {
sqlSession.close();
}
}
}

TestParamMapper.java

当需要传递多个参数的时候,需要用到@Param注解,并且上面的代码中给出了例子:RoleMapper.xml中的SelectRolesByUserIdAndRoleEnabled

需要注意的是,在Mapper.xml中,<mapper>中的属性namespace不能少,之前在学习的过程由于缺少了namespace,导致没有得到正确的结果,排查了半天,才找到原因

四、架构图

Maven+Mybatis一些简单例子的更多相关文章

  1. Java连接数据库 #07# MyBatis Generator简单例子

    MyBatis Generator是一个可以帮助我们免去手写实体类&接口类以及XML的代码自动生成工具. 下面,通过一个简单的例子介绍MyBatis Generator如何使用. 大体流程如下 ...

  2. mybatis的简单使用

    使用mybatis数据库时,需要添加一下jar包: asm-3.3.1.jarcglib-2.2.2.jarjavassist-3.17.1-GA.jarlog4j-1.2.17.jarmybatis ...

  3. 详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)(下)

    在上一篇(详解intellij idea 搭建SSM框架(spring+maven+mybatis+mysql+junit)(上))博文中已经介绍了关于SSM框架的各种基础配置,(对于SSM配置不熟悉 ...

  4. 使用 CXF 做 webservice 简单例子(转载)

    使用 CXF 做 webservice 简单例子     Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构.它允许创建高性能和可扩展的服务,您可以将这 ...

  5. quartz---的一个简单例子

    quartz---的一个简单例子 首先建立一个maven项目.jar工程即可.(提示:我前面有如何建立一个maven工程的总结以及maven环境的配置.) 1.建立好后点击到app中运行,--> ...

  6. IDEA Maven Mybatis generator 自动生成代码

    IDEA Maven Mybatis generator 自动生成代码 一.安装配置maven以及在Idea中配置maven 安装过程步骤可以看上面的博文,里面介绍得很详细. 二.建数据表 DROP ...

  7. Drools简单例子

    转自:http://www.blogjava.net/diggbag/articles/359347.html 1.Drools简单例子 首先是搭建一个可供进行Drools开发的框架.Jboss官方推 ...

  8. SparkStreaming简单例子(oldAPI)

    SparkStreaming简单例子 ◆ 构建第一个Streaming程序: (wordCount) ◆ Spark Streaming 程序最好以使用Maven或者sbt编译出来的独立应用的形式运行 ...

  9. Mybatis的简单增删改查

    刚开始学习Mybatis可以先看下官方文档,MyBatis是支持定制化SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis避免了几乎所有的JDBC代码和手工设置参数以及抽取结果集.MyBat ...

随机推荐

  1. iowait过高处理

    网管告警: 告警主机:YiDHLWJKFZ-js-app- 主机IP:192.168.***.*** 告警项目:system.cpu.util[,iowait] 告警时间: :: 告警等级:Warni ...

  2. UniGUI的布局使用说明

    (unigui的页面布局还是很强大的,基本什么的排版都能搞好.前面部分为原文章翻译,翻译不一定很准确,就能看吧,后面有使用说明,有什么不明白的欢迎加我QQ(910300653)一起交流学习) 一.布局 ...

  3. AddTransient,AddScope和AddSingleton 有什么不同?

    我们先来创建几个接口using System; namespace DependencyInjectionSample.Interfaces{ public interface IOperation ...

  4. Mybatis中输入输出映射和动态Sql

    一.输入映射 我们通过配置parameterType的值来指定输入参数的类型,这些类型可以是简单数据类型.POJO.HashMap等数据类型 1.简单类型 2.POJO包装类型 ①这是单表查询的时候传 ...

  5. GC垃圾回收机制,iOS内存管理。

    问题: MRC中通过调用静态方法创建的新对象,不再使用时需要对其发送release消息吗? 不需要,因为约定静态方法创建的对象会自动将其放入自动释放池,即已对其发送autorelease消息,因此不可 ...

  6. 选项卡--原生js

    比较基础的一个特效,毕业设计要做一些记录,就把这些都记下来吧,万一用到的时候忘了呢 function changeTab() { let navs = document.getElementsByTa ...

  7. Servlet案例5:用户登录失败信息回显

    登录失败信息回显不会的新的一个页面,而是显示在登录页面 一种方法是: 登录页面表单中每个字段后添加<span>标签写入失败信息,利用ajax技术 通过改变<span>标签的di ...

  8. HttpRunner框架(一)

    HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试.性能测试.线上监控.持续集成等多种测试需求. 中文使用文档地址:h ...

  9. LeetCode手记-Add Binary

    问题描述 问题分析 分析题意,此题实际是求解两个二进制数的和,但是有两点要注意: 1.字符串的长度不限,所以相应十进制数值很可能会超过int的上限. 2.二进制的加法规则是自右向左进位,需要注意,以题 ...

  10. Liferay7 BPM门户开发之9: 流程表单数据动态映射体系

    设计目的: 每个流程表单涉及不同的表单变量.比如请假流程有3个任务节点,分别是 Task1:开始流程,填写请假人.请假原因.请假开始时间.请假结束时间: Task2:上级审批,填写是否同意,审批意见: ...