文章目录

  • 1 Hello MyBatis
    • 1.1 Demo
      • pom.xml
      • User
      • UserMapper.xml (映射配置文件)
      • sqlMapConfig.xml(核心配置文件)
      • jdbc.properties(数据库参数)
      • 测试文件
    • 1.2 增删改查 UserMapper.xml
      • insert
      • update
      • delete
    • 1.3 核心配置文件 sqlMapConfig.xml
    • 1.4 MyBatis代理开发方式(重要)

1 Hello MyBatis

1.1 Demo
  1. 导入依赖(MySQL驱动,mybaits)
  2. User实体类
  3. UserMapper.xml 映射配置文件
  4. SqlMapConfig.xml 核心配置文件
    • 数据库环境变配置
    • 引入映射关系的配置
  5. 测试代码
    • 加载核心配置文件
    • 获取sqlSessionFactory工厂对象
    • 获取sqlSession会话对象
    • 执行sql
    • 释放资源

pom.xml
<!--引入mybatis依赖-->
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.4</version>
</dependency><!--引入mysql驱动-->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version>
</dependency><!--引入junit-->
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version>
</dependency>
User
@Data
@ToString
public class User {// 属性名需要和数据库字段一一对应private Integer id;private String username;private Date birthday;private String sex;private String address;
}
UserMapper.xml (映射配置文件)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="UserMapper"><!--查询所有--><select id="findAll" resultType="com.dy.domain.User">select * from user</select>
</mapper>
sqlMapConfig.xml(核心配置文件)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--加载properties文件--><properties resource="jdbc.properties"/><!--设置别名--><typeAliases><!--方式二:批量起别名 别名就是类名,且不区分大小写--><package name="com.dy.domain"/></typeAliases><!--    <plugins>-->
<!--        &lt;!&ndash; 分页助手的插件 &ndash;&gt;-->
<!--        <plugin interceptor="com.github.pagehelper.PageHelper">-->
<!--            &lt;!&ndash; 指定方言 &ndash;&gt;-->
<!--            <property name="dialect" value="mysql"/>-->
<!--        </plugin>-->
<!--    </plugins>--><!--environments: 运行环境--><environments default="development"><environment id="development"><!--当前的事务事务管理器是JDBC--><transactionManager type="JDBC"/><!--数据源信息 POOLED:使用mybatis的连接池--><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments><!--引入映射配置文件--><mappers><!-- 单独加载 --><mapper resource="com/dy/mapper/UserMapper.xml"/><!--批量加载映射--><package name="com.dy.mapper"/></mappers>
</configuration>
jdbc.properties(数据库参数)
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///mybatis_db
jdbc.username=root
jdbc.password=root
测试文件
@Test
public void testFindAll() throws Exception {// 加载核心配置文件InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");// 获取SqlSessionFactory工厂对象SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);// 获取SqlSession会话对象SqlSession sqlSession = sqlSessionFactory.openSession();// 执行sql namespace="UserMapper" -> id="findAll"List<User> list = sqlSession.selectList("UserMapper.findAll");for (User user : list) {System.out.println(user);}// 释放资源sqlSession.close();
}

idea可能存在 resource下的资源没输出,pom中配置一下

    <build><!-- resources--><resources><resource><directory>src/main/resources</directory></resource></resources><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>8</source><target>8</target></configuration></plugin></plugins></build>
1.2 增删改查 UserMapper.xml

insert
  • 插入语句使用insert标签
  • 在映射文件中使用parameterType属性指定要插入的数据类型
  • Sql语句中使用#{实体属性名}方式引用实体中的属性值
  • 插入操作使用的API是sqlSession.insert(“命名空间.id”,实体对象);
  • 插入操作涉及数据库数据变化,所以要使用sqlSession对象显示的提交事务,即
    sqlSession.commit()
    <!--新增--><insert id="save" parameterType="com.dy.domain.User">insert into user(username, birthday, sex, address)values (#{username}, #{birthday}, #{sex}, #{address})</insert>
    @Testpublic void testSave() throws Exception {// 加载核心配置文件InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");// 获取SqlSessionFactory工厂对象SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);// 获取SqlSession会话对象SqlSession sqlSession = sqlSessionFactory.openSession();// 执行sqlUser user = new User();user.setUsername("jack");user.setBirthday(new Date());user.setSex("男");user.setAddress("北京海淀");sqlSession.insert("UserMapper.save", user);// DML语句,手动提交事务sqlSession.commit();// 释放资源sqlSession.close();}
update
  • 修改语句使用update标签
  • 修改操作使用的API是sqlSession.update(“命名空间.id”,实体对象);
    <!--修改--><update id="update" parameterType="com.dy.domain.User">update userset username = #{username},birthday = #{birthday},sex      = #{sex},address  = #{address}where id = #{id}</update>
    @Testpublic void testUpdate() throws Exception {// 加载核心配置文件InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");// 获取SqlSessionFactory工厂对象SqlSessionFactory sqlSessionFactory = newSqlSessionFactoryBuilder().build(is);// 获取SqlSession会话对象SqlSession sqlSession = sqlSessionFactory.openSession();// 执行sqlUser user = new User();user.setId(4);user.setUsername("lucy");user.setBirthday(new Date());user.setSex("女");user.setAddress("北京朝阳");sqlSession.update("UserMapper.update", user);// DML语句,手动提交事务sqlSession.commit();// 释放资源sqlSession.close();}
delete
  • 删除语句使用delete标签
  • Sql语句中使用#{任意字符串}方式引用传递的单个参数
  • 删除操作使用的API是sqlSession.delete(“命名空间.id”,Object);
<!--删除-->
<delete id="delete">delete from user where id = #{id}
</delete>
@Test
public void testDelete() throws Exception {// 加载核心配置文件InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");// 获取SqlSessionFactory工厂对象SqlSessionFactory sqlSessionFactory = newSqlSessionFactoryBuilder().build(is);// 获取SqlSession会话对象SqlSession sqlSession = sqlSessionFactory.openSession();// 执行sqlsqlSession.delete("UserMapper.delete", 50);// DML语句,手动提交事务sqlSession.commit();// 释放资源sqlSession.close();
}
1.3 核心配置文件 sqlMapConfig.xml

MyBatis 的配置文件 官网

[常用配置](# UserMapper.xml (映射配置文件))

1.4 MyBatis代理开发方式(重要)


UserMapper 接口

// 根据id查询用户
User findUserById(int id);

UserMapper.xml 映射配置文件

<!--根据id查询用户-->
<select id="findUserById" parameterType="int" resultType="com.dy.domain.User">select * from user where id = #{id}
</select>

Test

@Test
public void testFindById() throws Exception {// 加载核心配置文件InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");// 获得SqlSessionFactory工厂对象SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);// 获得SqlSession会话对象SqlSession sqlSession = sqlSessionFactory.openSession();// 获得Mapper代理对象UserMapper userMapper = sqlSession.getMapper(UserMapper.class);// 执行查询User user = userMapper.findUserById(3);System.out.println(user);// 释放资源sqlSession.close();
}

1 - Hello MyBatis相关推荐

  1. mybatis查询报错:com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from string

    mybatis查询报错: com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from strin ...

  2. MyBatis的插入后获得主键的方式

    需求: 使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值. 方法: 在mapper中指定keyProperty属性,示例如下: <insert id=" ...

  3. mybatis使用注解开发

    mybatis使用注解开发 面向接口编程 在之前我们是通过面向对象编程,但是在真正开发的时候我们会选择面向接口编程. 根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的 ...

  4. mybatis ResultMap

    ResultMap 解决属性名和字段的名称不一致的问题. 查询为null的问题 创建java实体类: public class User {private int id; //idprivate St ...

  5. mybatis配置文件解析

    mybatis配置文件解析 mybatis核心配置文件`mybatis-config.xml文件. mybatis的配置文件包含了会深深影响mybatis行为的设置和属性信息. 能配置的内容: con ...

  6. mybatis CRUD操作

    mybatis CRUD操作 select select标签是mybatis最常用的标签之一. select语句有很多属性可以详细的配置每一天sql语句. id 命名空间唯一的标识. 接口中的方法名与 ...

  7. java mybatis基础

    java mybatis基础 1.1 什么是mybatis? mybatis是一个优秀的持久层框架. 避免几乎所有的JDBC代码和手动设置参数以及获取结果集的过程. 可以使用简单的xml或者注解来配置 ...

  8. mybatis的资源过滤错误及xml文件编码错误

    mybatis 解决maven项目内资源过滤的问题 写的配置文件无法被导出或者生效的问题. 解决方案: <build><resources><resource>&l ...

  9. Mybatis传递多个参数的4种方式

    现在大多项目都是使用Mybatis了,但也有些公司使用Hibernate.使用Mybatis最大的特性就是sql需要自己写,而写sql就需要传递多个参数.面对各种复杂的业务场景,传递参数也是一种学问. ...

  10. SpringBoot (五) :SpringBoot整合mybatis

    说在前面 mybatis刚开始使用的时候比较麻烦,需要各种配置文件.实体类.dao层映射关联.还有一大推其它配置.初期开发了generator可以根据表结果自动生产实体类.配置文件和dao层代码,可以 ...

最新文章

  1. Ubuntu14.04上安装TensorRT 2.1操作步骤
  2. きゃらコレ! -ALICESOFT- 汉化补丁
  3. JVM 调优实战--jmap的使用以及内存溢出分析
  4. 使用Eclipse trace Application的启动
  5. router-link-active 和 router-link-exact-active router-link-active
  6. ORA-12638: 身份证明检索失败
  7. 发送不同类型的ActivityFeed
  8. 160 - 52 egis.1
  9. 你很棒的---自我管理方法,一生受用!!!
  10. (34)System Verilog引用包中定义的类(失败)
  11. python入门--动态绑定属性和方法
  12. 计算机硬件故障有哪些现象,计算机常见硬件故障症状现象分析及解决办法
  13. 多个安卓设备投屏到电脑_如何将多个安卓手机投屏到电脑端
  14. 微信分享,图标背景黑色问题解决
  15. git idea创建新分支,获取/合并主支代码的2个方法
  16. R 语言与中心极限定理
  17. 前50%股票成交量占比计算
  18. 科学计算极速图形工作站
  19. 肝病患者关爱与病例管理
  20. 【IC基础】集成电路设计领域术语缩写及名词解释(字母索引版)

热门文章

  1. java 翻译框架_java框架外文翻译
  2. cad 中的计算机在哪里打开,CAD计算器如何使用?
  3. 使用canvas 绘制象棋棋盘
  4. element ui el-table单元格按需合并
  5. 爱奇艺播放按钮动画解析
  6. 常见噪声及其消除的方式
  7. druid数据源下 sqlserver 出现 对象名 'xxx' 无效
  8. requests模块
  9. JVM系列-第4章-虚拟机栈
  10. mysql:列类型之float、double