MyBatis的入门案例(xml配置)

您所在的位置:网站首页 mybatis入门程序 MyBatis的入门案例(xml配置)

MyBatis的入门案例(xml配置)

2023-07-28 18:30| 来源: 网络整理| 查看: 265

思路流程:搭建环境–>导入Mybatis—>编写代码—>测试 视图: 在这里插入图片描述

1、准备数据库 create database mybatis; use mybatis; CREATE table user( `id` INT(20) primary KEY auto_increment, `name` VARCHAR(30) DEFAULT NULL, `pwd` varchar(30) DEFAULT null )ENGINE INNODB DEFAULT CHARSET=utf8; insert into user(NAME,pwd) VALUES('张三','1'),('李四','11');

在这里插入图片描述

2.导入MyBatis相关 jar 包

GitHub上找要导入的包 GitHub : https://github.com/mybatis/mybatis-3 在父工程的Pom.xml文件中导入

4.0.0 com.loey MyBatis pom 1.0.0 UTF-8 11 11 org.mybatis mybatis 3.5.3 mysql mysql-connector-java 5.1.23 junit junit 4.12 test src/main/resources **/*.properties **/*.xml false src/main/java **/*.properties **/*.xml false 3、编写MyBatis核心配置文件:mybatis-config.xml

查看官网帮助文档 Mybatis官方文档 : http://www.mybatis.org/mybatis-3/zh/index.html 在这里插入图片描述 mybatis-config.xml:

4、编写MyBatis工具类:MyBatisUtils.java package com.loey.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 { private static SqlSessionFactory sqlSessionFactory; static{ try { //使用Mybatis第一步:获取sqlSessionFactory对象 String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } //既然有了 SqlSessionFactory,顾名思义,我们就可以从中获得 SqlSession 的实例了。 // SqlSession 完全包含了面向数据库执行 SQL 命令所需的所有方法。 //获取sqlSession连接 public static SqlSession getSqlSession(){ return sqlSessionFactory.openSession(); } } 5.创建实体类跟Mapper

创建实体类:

public class User { private Integer id; private String name; private String pwd;

编写Mapper接口类:

public interface UserMapper { //查询所用户 List getAllUser(); /** * 根据id查询用户 * @param id * @return */ User selectUserById(Integer id); /** * 增加用户 * @param user */ int insertUser(User user); /** * 修改用户 * @param user */ int updateUser(User user); /** * 通过ID删除用户 * @param id */ int deleteUser(Integer id); }

编写Mapper.xml配置文件 : namespace 十分重要,不能写错!

select * from user select * from user where id = #{id} insert into user(name,pwd) values(#{name},#{pwd}) update user set name=#{name},pwd=#{pwd} where id = #{id} delete from user where id = #{id} 6.测试类 @Test public void testGetAllUser(){ //第一步:获得SqlSession对象 SqlSession sqlSession = MyBatisUtils.getSqlSession(); try { //方式一:推荐使用 // UserMapper userMapper = sqlSession.getMapper(UserMapper.class); // List users = userMapper.getAllUser(); //方式二:不推荐用 List users = sqlSession.selectList("com.loey.mapper.UserMapper.getAllUser"); for (User user : users) { System.out.println(user); } } finally { //关闭SqlSession sqlSession.close(); } } //增删改要提交事务 @Test public void test3() { SqlSession sqlSession = MyBatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); User user = new User("pp", "111"); mapper.insertUser(user); System.out.println(user.getId()); sqlSession.commit();//增删改要提交事务 sqlSession.close(); } 小结 所有的增删改操作都需要提交事务!接口所有的普通参数,尽量都写上@Param参数,尤其是多个参数时,必须写上!有时候根据业务的需求,可以考虑使用map传递参数!为了规范操作,在SQL的配置文件中,我们尽量将Parameter参数和resultType都写上 7.万能MAP与like模糊查询 万能MAP

mapper接口类:

User selectUserById2(Map map); int insertUser2(Map map);

mapper.xml配置类:

select * from user where id = #{userId} insert into user(name,pwd) values(#{name},#{pwd})

测试类:

@Test public void test7(){ SqlSession sqlSession = MyBatisUtils.getSqlSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); Map map = new HashMap(); map.put("userId",1); User user = userMapper.selectUserById2(map); System.out.println(user); sqlSession.close(); } @Test public void test6(){ SqlSession sqlSession = MyBatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); Map map = new HashMap(); map.put("name","dd"); map.put("pwd",12345); mapper.insertUser2(map); sqlSession.commit(); sqlSession.close(); } 两种like模糊查询

like接口类:

List getUserLike(String value);

mapper.xml配置类:

select * from user where name like concat ('%',#{value},'%')

测试类:

@Test public void test8(){ SqlSession sqlSession = MyBatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); // String value = "张%"; String value = "张"; List userLike = mapper.getUserLike(value); for (User user : userLike) { System.out.println(user); } sqlSession.close(); }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3