Mybatis快速入门(2)Dao封装-属性加载:抽取JDBC-别名的配置-映射器(mappers)
(2)修改UserMapper.xml,在UserMapper.xml当中引用别名:
发布日期:2021-06-29 15:03:28
浏览次数:3
分类:技术文章
本文共 4560 字,大约阅读时间需要 15 分钟。
一、需求
根据用户ID查询用户信息
根据用户名查找用户列表 添加用户二、原始Dao的开发方式
1、创建Dao/UserDao接口
package com.itzheng.mybatis.dao;import java.util.List;import com.itzheng.mybatis.pojo.User;public interface UserDao { // 根据用户ID查询用户信息 /* * 用户信息持化接口 */ User getUserById(Integer id); // 根据用户名查找用户列表 ListgetUserByUserName(String userName); // 添加用户 void insertUser(User user);}
2、创建接口对应的实现类
public class UserDaoImpl implements UserDao { @Override public User getUserById(Integer id) { SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSessionFactory().openSession(); User user = sqlSession.selectOne("user.getUserByid", id); sqlSession.close(); return user; } @Override public ListgetUserByUserName(String userName) { SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSessionFactory().openSession(); List selectList = sqlSession.selectList("user.getUserByUserName", userName); sqlSession.close(); return selectList; } @Override public void insertUser(User user) { SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSessionFactory().openSession(true);// true自动提交 sqlSession.insert("user.insertUser", user); sqlSession.close(); }}
3、创建单元测试
(1)通过id查询用户
@Test public void testGetUserById() { UserDao userDao = new UserDaoImpl(); User user = userDao.getUserById(30); System.out.println(user); }
(2)通过name查询用户
@Test public void testGetUserByUserName() { UserDao userDao = new UserDaoImpl(); ListuserByUserName = userDao.getUserByUserName("张"); for (User user : userByUserName) { System.out.println(user); } }
(3)插入用户
@Test public void testInsertUser() { UserDao userDao = new UserDaoImpl(); User user = new User(); user.setUsername("张飞1111"); user.setSex("2"); user.setBirthday(new Date()); user.setAddress("深圳黑马"); userDao.insertUser(user); }
三、官方推荐,接口动态代理
通过动态代理的方式有实现类但是不需要自己手动去写
1、创建UserMapper接口
package com.itzheng.mybatis.mapper;import java.util.List;import com.itzheng.mybatis.pojo.User;public interface UserMapper { // 根据用户ID查询用户信息 /* * 用户信息持化接口 */ User getUserByid(Integer id); // 根据用户名查找用户列表 ListgetUserByUserName(String userName); // 添加用户 void insertUser(User user);}
2、创建UserMapper.xml
INSERT INTO USER (`username`, `birthday`, `sex`, `address`) VALUES (#{username}, #{birthday}, #{sex}, #{address});
3、修改SqlMapConfig.xml当中添加映射文件
4、创建单元测试
(1)根据ID查询用户
@Test public void testGetUserById() { SqlSession openSession = SqlSessionFactoryUtils.getSqlSessionFactory().openSession(); // 获取接口的代理实现类 UserMapper userMapper = openSession.getMapper(UserMapper.class); User user = userMapper.getUserByid(30); System.out.println(user); openSession.close(); }
(2)根据name查询用户
@Test public void testGetUserByUserName() { SqlSession openSession = SqlSessionFactoryUtils.getSqlSessionFactory().openSession(); // 获取接口的代理实现类 UserMapper userMapper = openSession.getMapper(UserMapper.class); Listlist = userMapper.getUserByUserName("张"); for (User user : list) { System.out.println(user); } openSession.close(); }
(3)插入用户
@Test public void testInsertUser() { SqlSession openSession = SqlSessionFactoryUtils.getSqlSessionFactory().openSession(true); // 获取接口的代理实现类 UserMapper userMapper = openSession.getMapper(UserMapper.class); User user = new User(); user.setUsername("张飞1111"); user.setSex("2"); user.setBirthday(new Date()); user.setAddress("深圳黑马"); userMapper.insertUser(user); openSession.close(); }、
四、属性加载:抽取JDBC
1、创建jdbc.properties
2、修改SqlMapConfig.xml,在SqlMapConfig.xml当中引入jdbc.properties
五、别名的配置:typeAliases
别名的作用将复杂的数据用其他的名称简单的代替
1、mybatis支持的别名:
2、自定义别名:方式一,配置对应的类的别名
(1)修改SqlMapConfig.xml
(2)修改UserMapper.xml,在UserMapper.xml当中引用别名:别名不区分大小写
3、自定义别名:方式二,配置包别名,默认别名就是类名称不区分大小写
(1)修改SqlMapConfig.xml:别名包扫描器:别名是类的全称,不区大小写
(2)UserMapper.xml当中直接使用类名就OK
六、映射器(mappers)
Mapper配置的几种方式:
1、将UserMapper.xml复制到mapper文件下
2、修改SqlMapConfig.xml:方式一:类配置
1、接口文件必须与映射文件在同一个目录下
2、接口文件的名称必须与映射文件的名称一致3、修改SqlMapConfig.xml:方式二:包扫描->推荐
1、接口文件必须与映射文件在同一个目录下
2、接口包文件的名称必须与映射文件的名称一致转载地址:https://code100.blog.csdn.net/article/details/113404672 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月05日 07时40分55秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Eureka 如何快速的、优雅的停止某个微服务
2019-04-29
Eureka 实现安全认证
2019-04-29
Nginx 反向代理、负载均衡配置、Location正则表达式
2019-04-29
SpringBoot + WebSocket 实现前后端的收发消息
2019-04-29
SpringBoot 整合 JWT 实现统一认证
2019-04-29
SpringBoot 使用 CompletableFuture 实现非阻塞异步编程
2019-04-29
即刻就业:本科毕业如何快速高薪就业?
2019-04-29
JAVA中的浮点数与二进制
2019-04-29
JAVA笔记(二)--Java初始
2019-04-29
JAVA笔记(三)--变量及运算符
2019-04-29
JAVA笔记(四)--三大结构语句
2019-04-29
JAVA语言基础(五)--数组
2019-04-29
JAVA项目案例详解带代码
2019-04-29
JAVA九种排序算法详解
2019-04-29
JAVA笔记(六)面向对象--类和对象
2019-04-29
JAVA笔记(十一)面向对象--多态
2019-04-29
webpack打包错误:Invalid configuration object. Webpack has been initialised using a configuration object
2019-04-29
TypeError: this.getOptions is not a function
2019-04-29