- Mybatis简介
- 什么是 MyBatis?
- 如何获得Mybatis
- 持久化
- 持久层
- 为什么需要Mybatis
- 第一个Mybatis程序
- 搭建环境
- 建库建表
- 新建父工程
- 新建普通maven项目
- 删除src目录,作为父工程
- 导入maven依赖
- 创建第一个子模块
- 编写mybatis的核心配置文件
- 编写mybatis工具类,获取SqlSession
- 编写代码测试
- 实体类
- 接口
- Mapper
- 测试
- 问题一:Mapper.
- 问题二:Mapper文件编译后不存在
- 问题三:数据库连接SSL错误
- 测试成功
- 搭建环境
- CRUD
- namespace中的包名要和Mapper接口的包名一致
- select 选择,查询语句
- id 对应接口中的方法名
- parameterType 对应接口中方法的请求参数
- resultType 对应接口中方法的返回值
- 集合类型写集合泛型类型
- insert/update/delete 增删改必须提交事务
- 编写接口
- 编写Mapper
- 测试
- Map的应用
- Map传递参数,用key获取即可
- 对象传递参数,用属性获取即可
- 只有一个基本类型参数,可以直接获取,可不写parameterType
- 编写接口
- 编写Mapper
- 测试
Mybatis简介
什么是 MyBatis?
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的
- MyBatis 是一款优秀的持久层框架
- 它支持自定义 SQL、存储过程以及高级映射。
- MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。
- MyBatis 可以通过简单的
- MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
如何获得Mybatis
- maven仓库
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version></dependency>- 中文文档:https://mybatis.org/mybatis-3/zh/index.html
- Github:https://github.com/mybatis/mybatis-3/releases

持久化

持久层

为什么需要Mybatis

第一个Mybatis程序
学习新东西方法:搭建环境-》导入mybatis-》编写代码-》测试
搭建环境
建库建表
CREATE DATABASE `mybatis`CHARACTER SET utf8 COLLATE utf8_general_ci; USE `mybatis`;CREATE TABLE `mybatis`.`user` ( `id` INT(20) NOT NULL COMMENT '主键', `name` VARCHAR(100) NOT NULL COMMENT '用户名', `pwd` VARCHAR(100) NOT NULL COMMENT '密码', PRIMARY KEY (`id`) ) ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_general_ci; DESCRIBE `mybatis`.`user`; INSERT INTO `mybatis`.`user` (`id`, `name`, `pwd`) VALUES ('1', 'zhangyq', '123456'); INSERT INTO `mybatis`.`user` (`id`, `name`, `pwd`) VALUES ('2', 'zhangsf', '123456'); INSERT INTO `mybatis`.`user` (`id`, `name`, `pwd`) VALUES ('3', 'zhangdl', '123456'); 新建父工程
新建普通maven项目

删除src目录,作为父工程

导入maven依赖
<?创建第一个子模块

编写mybatis的核心配置文件
官网:https://mybatis.org/mybatis-3/zh/index.html

<?编写mybatis工具类,获取SqlSession
SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。

package com.qing.utils;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 java.io.IOException;import java.io.InputStream;public class MybatisUtils { // 构建 SqlSessionFactory 的实例 private static SqlSessionFactory sqlSessionFactory; static { try { String resource = "mybatis-config.编写代码测试
实体类

接口
package com.qing.dao;import com.qing.pojo.User;import java.util.List;/** * 接口 */public interface UserMapper { List<User> getUserList();}Mapper
<?测试
package com.qing.dao;import com.qing.pojo.User;import com.qing.utils.MybatisUtils;import org.apache.ibatis.session.SqlSession;import org.junit.Test;import java.util.List;public class UserMapperTest { /** * 方式一:sqlSession.getMapper(UserMapper.class) */ @Test public void test() { // 获取sqlSession SqlSession sqlSession = MybatisUtils.getSqlSession(); // 执行SQL UserMapper mapper = sqlSession.getMapper(UserMapper.class); List<User> userList = mapper.getUserList(); for (User user : userList) { System.out.println(user); } // 关闭sqlSession sqlSession.close(); }}<?
<?问题二:Mapper文件编译后不存在
java.lang.ExceptionInInitializerError at com.qing.dao.UserMapperTest.test(UserMapperTest.java:18)Caused by: org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession.### The error may exist in com/qing/dao/UserMapper.
解决:pom.
<?
问题三:数据库连接SSL错误
org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet successfully received from the server was 2,729 milliseconds ago. The last packet sent successfully to the server was 2,715 milliseconds ago.### The error may exist in com/qing/dao/UserMapper.解决:mybatis-config.
<?测试成功

CRUD
namespace中的包名要和Mapper接口的包名一致

<?package com.qing.dao;import com.qing.pojo.User;import java.util.List;/** * 接口 */public interface UserMapper { /** * 查询全部用户 * @return */ List<User> getUserList();}select 选择,查询语句
id 对应接口中的方法名
parameterType 对应接口中方法的请求参数
resultType 对应接口中方法的返回值
集合类型写集合泛型类型
<?package com.qing.dao;import com.qing.pojo.User;import java.util.List;/** * 接口 */public interface UserMapper { /** * 查询全部用户 * @return */ List<User> getUserList(); /** * 根据ID查询用户 * @param id * @return */ User getUserById(int id);}package com.qing.dao;import com.qing.pojo.User;import com.qing.utils.MybatisUtils;import org.apache.ibatis.session.SqlSession;import org.junit.Test;import java.util.List;public class UserMapperTest { /** * 查询全部用户 */ @Test public void getUserList() { SqlSession sqlSession = null; try { // 获取sqlSession sqlSession = MybatisUtils.getSqlSession(); // 执行SQL UserMapper mapper = sqlSession.getMapper(UserMapper.class); List<User> userList = mapper.getUserList(); for (User user : userList) { System.out.println(user); } } catch (Exception e) { e.printStackTrace(); } finally { // 关闭sqlSession sqlSession.close(); } } /** * 根据ID查询用户 */ @Test public void getUserById() { SqlSession sqlSession = null; try { // 获取sqlSession sqlSession = MybatisUtils.getSqlSession(); // 执行SQL UserMapper mapper = sqlSession.getMapper(UserMapper.class); User user = mapper.getUserById(1); Sy......原文转载:http://www.shaoqun.com/a/865383.html
跨境电商:https://www.ikjzd.com/
ad公司:https://www.ikjzd.com/w/1332
agora:https://www.ikjzd.com/w/2176
retriever:https://www.ikjzd.com/w/773
目录Mybatis简介什么是MyBatis?如何获得Mybatis持久化持久层为什么需要Mybatis第一个Mybatis程序搭建环境建库建表新建父工程新建普通maven项目删除src目录,作为父工程导入maven依赖创建第一个子模块编写mybatis的核心配置文件编写mybatis工具类,获取SqlSession编写代码测试实体类接口Mapper测试问题一:Mapper.问题二:Mapper文件
声网agora:https://www.ikjzd.com/w/2176
2021番禺美食节几号开始?广州番禺美食节举办时间?:http://www.30bags.com/a/428381.html
2021番禺去哪里赏花?番禺赏花攻略?:http://www.30bags.com/a/432134.html
2021方特蓝水星平安夜好玩吗?2021汕头方特欢乐世界圣诞跨年晚上到几点?:http://www.30bags.com/a/422916.html
2021仿山庙会时间?定陶仿山庙会什么时候结束?:http://www.30bags.com/a/428220.html
办公室不行太深了顶破死了 腿张大点就不疼了叫出来:http://lady.shaoqun.com/a/256936.html
玩吧今天老师就是你的人 英语老师在宿舍满足了我:http://www.30bags.com/m/a/249864.html
坐在男友腿上被吸奶 男朋友边吃奶边做:http://www.30bags.com/m/a/249775.html
成都仙女游乐场门票多少钱?团购票价优惠吗:http://www.30bags.com/a/489644.html
成都仙女游乐场好玩吗?简介一下怎么样啊:http://www.30bags.com/a/489645.html
甜蜜的睡前故事:http://lady.shaoqun.com/a/415040.html
夺走妻子初夜的男人,后来变成了我的桥:http://lady.shaoqun.com/a/415041.html
No comments:
Post a Comment