导入 mybatis 相关依赖包,可以在https://mvnrepository.com网站中查询 mybatis 的包版本号
<dependencies> <!-- Mybatis依赖包 3.5.3版本--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.3</version> </dependency> <!-- Mysql版本依赖包--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> <scope>runtime</scope> </dependency> <!-- Lombok版本依赖包--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> </dependency> <!-- Junit测试依赖包--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies>再使用命令 mvn install 进行依赖打包
创建数据库以及创建表
--- 创建数据库 CREATE DATABASE test; --- 使用数据库 USE test; --- 创建相关表结构 CREATE TABLE `user` ( `id` char(19) NOT NULL COMMENT '会员id', `name` varchar(50) DEFAULT NULL COMMENT '昵称', `age` tinyint(3) unsigned DEFAULT NULL COMMENT '年龄', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员表'; 使用show tables 命令查看表是否创建成功
在resource文件下创建 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> <!-- 设置驼峰匹配 --> <settings> <!--开启二级缓存--> <setting value="true"/> </settings> <!-- 设置包扫描(别名) --> <typeAliases> <package/> </typeAliases> <!-- 配置环境:可以配置多个环境,default:配置某一个环境的唯一标识,表示默认使用哪个环境 --> <environments default="development"> <environment> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <!--POOLED使用了连接池技术 type=”POOLED”: MyBatis 会创建 PooledDataSource 实例 type = "UNPOOLED" mybatis会创建UnpooledDataSource实例 type = "JNDI"mybatis会从JNDI服务上查找DataSource实例,然后返回使用 --> <!-- 配置连接信息 --> <property value="com.mysql.jdbc.Driver"/> <property value="jdbc:mysql://localhost:3306/test"/> <property value="root"/> <property value="xxx"/> </dataSource> </environment> </environments> <!-- 配置映射文件:用来配置sql语句和结果集类型等 --> <mappers> <!--映射器2 使用相对于类路径的资源 <mapper resource="mapper/UserMapper.xml"/> 使用mapper接口的类路径 <mapper/> 扫描指定包下的mapper <package></package> --> <mapper resource="mapper/UserMapper.xml"/> </mappers> </configuration>
创建 Mapper 对数据库进行增删改查操作
创建数据库表的映射类
//数据库中有多少字段对应类有多少属性,不然会报错 @Data //lombok的注解,用此注解可以不用对属性的getter和setter方法进行重写 public class User { private String id; private String name; private String age; }创建 UserMapper 类
@Mapper public interface UserMapper { //@Param 对传入的数据进行绑定,当参数为一个时,可以选择不加注解 //根据id查询用户信息 public User getInfo(@Param("id") String id); //查询数据库所有的用户信息 List<User> findAll(); //增加一条用户信息 boolean insert(User user); //根据用户id更新用户信息 boolean updateUser(User user); //根据用户id删除用户信息 boolean removeById(String id); //模糊查询 List<User> findByName(String username); }
在 resource/mapper 文件下创建 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类的路径一致--> <mapper namespace="com.yiying.mapper.UserMapper"> <!--根据id查询用户信息--> <select resultType="com.yiying.entity.User" parameterType="java.lang.String"> SELECT id, name,age FROM user WHERE id = #{id} </select> <resultMap type="user"> <id column="id" property="id"/> <result column="name" property="name"/> <result column="age" property="age"/> </resultMap> <!--查询所有用户信息--> <select resultMap="userMap" useCache="true"> select * from user </select> <!--模糊查询--> <select resultType="com.yiying.entity.User"> select * from user where name like '%${name}%' </select> <!--添加一条记录--> <insert parameterType="com.yiying.entity.User"> insert into user(id,name,age) values(#{id},#{name},#{age}) </insert> <!--根据用户id修改用户信息--> <update parameterType="com.yiying.entity.User"> update user set name=#{name},age=#{age} where id = #{id} </update> <!--根据用户id删除用户--> <delete parameterType="java.lang.String"> delete from user where id = #{id} </delete> </mapper>