MyBatis入门:

第一天接触Mybatis,总结一下入门案例的流程:

首先导入Mybatis的jar包和数据库的驱动包

1.创建数据表和实体类

2.创建一个表和实体类映射的xml配置文件,具体配置如下:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE mapper
 3   PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4   "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5   <!-- namespace是映射文件的一个唯一标识,用来定位是哪个映射文件 -->
 6 <mapper namespace="com.offcn.entity.personMapper">
 7     <!-- id是一条sql语句的唯一标识,parameterType是sql语句中的参数类型 ,resultType是sql语句将要返回的结果的类型 -->
 8     <!-- 如果输入的类型是基本数据类型(八种基本数据类型 + string)则#{xxx}可以随意写,但是为了规范最好不要,如果不是基本数据类型则必须写实体类中的字段名 -->
 9   <select id="selectPersonById" parameterType="int" resultType="com.offcn.entity.Person">
10     select * from Person where id = #{id}
11   </select>
12   <!-- sql语句后边不加分号 -->
13
14   <insert id="insertPerson" parameterType="com.offcn.entity.Person">
15       insert into Person (id,name,bir,address) value (#{id},#{name},#{bir},#{address})
16   </insert>
17
18   <delete id="deletePersonById" parameterType="int">
19       delete from Person where id = #{id}
20   </delete>
21
22   <update id="updatePerson" parameterType="com.offcn.entity.Person">
23       update person set name=#{name},bir=#{bir},address=#{address} where id = #{id}
24   </update>
25
26   <select id="selectPerson" resultType="com.offcn.entity.Person">
27       select * from person
28   </select>
29
30 </mapper>

3.编写全局配置文件conf.xml,包含数据库信息和映射文件信息,代码如下:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE configuration
 3   PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4   "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <configuration>
 6     <!-- 环境的配置,可以配置多个,可以通过default该换id定位使用哪个环境,也可以通过 sessionFactory的第二个参数设置-->
 7   <environments default="development">
 8     <environment id="development">
 9         <!-- 配置事物的提交方式,一共有两种
10             1.JDBC:利用JDBC的方式处理事务,需要手动提交(commit,rollback,close)
11             2.MANAGED:将事务由其他组件托管(spring,jobss),默认会关闭连接,如果想要自动关闭连接需要配置一个属性
12              <property name="driver" value="false"/>
13          -->
14       <transactionManager type="JDBC"/>   <!-- 后边的斜杠不能省略 -->
15
16       <!-- 数据源格式类型:
17           1.POOLED:数据连接池模式
18           2.UNPOOLED:传统的jdbc模式,每次都需要自己手动创建关闭
19           3.JNDI:从tomcat中获取一个内置的数据库连接池
20        -->
21       <dataSource type="POOLED">
22         <property name="driver" value="com.mysql.jdbc.Driver"/>
23         <property name="url" value="jdbc:mysql://localhost:3306/person?serviceTimeout=UTC"/>
24         <property name="username" value="root"/>
25         <property name="password" value="root"/>
26       </dataSource>
27     </environment>
28   </environments>
29   <mappers>
30     <mapper resource="com/offcn/entity/personMapper.xml"/>
31   </mappers>
32 </configuration>

3.写一个测试类,进行增删改查的测试,步骤如下:

  1 package com.offcn.entity;
  2
  3 import java.io.IOException;
  4 import java.io.Reader;
  5 import java.util.Date;
  6 import java.util.List;
  7
  8 import org.apache.ibatis.io.Resources;
  9 import org.apache.ibatis.session.SqlSession;
 10 import org.apache.ibatis.session.SqlSessionFactory;
 11 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 12
 13 public class Test {
 14     public static void main(String[] args) throws IOException {
 15     //    selectPerosnById();
 16         //insertPerson();
 17         //deletePersonById();
 18         //updatePerson();
 19         selectPerson();
 20     }
 21     //根据id查询
 22     public static void selectPerosnById() throws IOException {
 23         //读取conf.xml 配置文件
 24         Reader reader = Resources.getResourceAsReader("conf.xml");
 25         //创建sqlSessionFactory
 26         SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
 27         //创建session---> connection
 28         SqlSession session = sessionFactory.openSession();
 29         //statement ---> statement
 30         String sql = "com.offcn.entity.personMapper." + "selectPersonById";
 31         //查询一条数据
 32         Person person = session.selectOne(sql,1);
 33         //提交事务
 34         session.commit();
 35         System.out.println(person);
 36         //关闭连接
 37         session.close();
 38
 39     }
 40     //增加一条数据
 41     public static void insertPerson() throws IOException {
 42         //读取conf.xml文件
 43         Reader reader = Resources.getResourceAsReader("conf.xml");
 44         //创建一个sqlSessionFactory
 45         SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
 46         //创建一个session对象
 47         SqlSession session = sessionFactory.openSession();
 48         //定位sql语句
 49         String statement = "com.offcn.entity.personMapper." + "insertPerson";
 50         //执行sql语句
 51         Person person = new Person("李四",new Date(),"上海普陀");
 52         int count = session.insert(statement,person);
 53         //提交事务
 54         session.commit();
 55         System.out.println("增加"+count+"条数据");
 56         //关闭连接
 57         session.close();
 58     }
 59     //根据id删除一条数据
 60     public static void deletePersonById() throws IOException {
 61         //读取conf.xml文件
 62         Reader reader = Resources.getResourceAsReader("conf.xml");
 63         //获取sqlSessionFactory
 64         SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
 65         //获取session对象
 66         SqlSession session = sessionFactory.openSession();
 67         //定位sql语句
 68         String statement = "com.offcn.entity.personMapper."+"deletePersonById";
 69         //执行sql语句
 70         int count = session.delete(statement,2);
 71         //提交事务
 72         session.commit();
 73         System.out.println("删除"+count+"条数据");
 74         //关闭连接
 75         session.close();
 76     }
 77     //更改数据
 78     public static void updatePerson() throws IOException {
 79         //读取conf.xml
 80         Reader reader = Resources.getResourceAsReader("conf.xml");
 81         //创建sqlSessionFactory
 82         SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
 83         //创建sqlsession对象
 84         SqlSession session = sessionFactory.openSession();
 85         //定位sql
 86         String statement = "com.offcn.entity.personMapper." + "updatePerson";
 87         //执行sql语句
 88         Person person = new Person();
 89         person.setName("王五");
 90         person.setBir(new Date());
 91         person.setAddress("南京");
 92         person.setId(1);
 93         int count = session.update(statement,person);
 94         //提交事务
 95         session.commit();
 96         System.out.println("更改" + count +"条数据成功");
 97         //关闭连接
 98         session.close();
 99     }
100     //查询所有数据
101     public static void selectPerson() throws IOException {
102         //读取conf.xml
103         Reader reader = Resources.getResourceAsReader("conf.xml");
104         //创建sqlSessionFactory
105         SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
106         //创建sqlsession对象
107         SqlSession session = sessionFactory.openSession();
108         //定位sql
109         String statement = "com.offcn.entity.personMapper." + "selectPerson";
110         //执行sql语句
111         List<Person> persons = session.selectList(statement);
112         //提交事务
113         session.commit();
114         for (Person person : persons) {
115             System.out.println(person);
116         }
117
118         //关闭连接
119         session.close();
120     }
121 }

到此就完成了一个Mybatis的入门程序。

转载于:https://www.cnblogs.com/man-tou/p/11332626.html

01.MyBatis入门相关推荐

  1. MyBatis 01 快速入门

    MyBatis 01 快速入门 文章目录 MyBatis 01 快速入门 一.学习目标 二.为什么需要框架技术 三.框架技术介绍 四.主流框架介绍 五.持久化与ORM 六.MyBatis简介 七.搭建 ...

  2. MyBatis-学习笔记02【02.Mybatis入门案例】

    Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...

  3. MyBatis-学习笔记01【01.Mybatis课程介绍及环境搭建】

    Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...

  4. Mybatis入门之动态sql

    Mybatis入门之动态sql 通过mybatis提供的各种标签方法实现动态拼接sql. 1.if.where.sql.include标签(条件.sql片段) <sql id="sel ...

  5. MyBatis1:MyBatis入门

    MyBatis是什么 MyBatis是什么,MyBatis的jar包中有它的官方文档,文档是这么描述MyBatis的: MyBatis is a first class persistence fra ...

  6. MyBatis(1):MyBatis入门

    MyBatis是什么 MyBatis是什么,MyBatis的jar包中有它的官方文档,文档是这么描述MyBatis的: MyBatis is a first class persistence fra ...

  7. mybatis入门(七)之日志

    转载自    mybatis入门(七)之日志 Mybatis 的内置日志工厂提供日志功能,内置日志工厂将日志交给以下其中一种工具作代理: SLF4J Apache Commons Logging Lo ...

  8. mybatis入门(一)之基础安装

    转载自  mybatis入门 安装 要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于 classpath 中即可. 如果使用 Maven 来构建项目,则需将下面的 dep ...

  9. Mybatis入门程序增删改查操作

    学习目标 了解Mybatis的基本知识 熟悉Mybatis的工作原理 掌握Mybatis入门程序的编写 文章目录 1.初始Mybatis 2.Mybatis入门程序 3.Mybatis操作总结 1.初 ...

最新文章

  1. F#探险之旅(三):命令式编程(上)
  2. Mac如何安装并永久激活PyCharm以及IntelliJ IDEA
  3. python列表解析的新方法
  4. 云炬Android开发笔记 10主界面-首页UI与数据解析器开发(RecyclerView)
  5. mysql权限清理_mysql清理用户权限
  6. Linux下编译、链接、加载运行C++ OpenCV的两种方式及常见问题的解决
  7. 计算机应用专业特色建设情况,【计算机应用论文】计算机应用类专业建设和革新探索(共3022字)...
  8. c语言 年月日比较大小
  9. 电子科技大学计算机学院王刚,电子科技大学-团体程序设计天梯赛.PDF
  10. (Deep learning)深度卷积网络实战——第一部分
  11. 控件制作之design-time attribute
  12. Spring发送基于freemarker模板的邮件
  13. php和python-Python与PHP的一些区别
  14. 梯度下降法理论与实践
  15. Unity 基础数据库操作( Myspl 和 PostgreSQL)
  16. 在网络世界中我们该如何保护我们的信息安全?
  17. ps的切片用来转换html,Photoshop切片导出HTML+CSS
  18. bootstrap表格标题Caption位于表格下方的原因
  19. vue3 + element-plus 动态绑定icon图标
  20. 【trick 5】warmup —— 一种学习率调优方法

热门文章

  1. 嵌入式杂谈之文件系统
  2. TQ210——启动方式
  3. htmlcss实例小项目_小程序websocket心跳库——websocket-heartbeat-miniprogram
  4. python判断对象是否实例化_Python判断对象是否相等及eq函数的讲解
  5. 鸿蒙系统能不能用了,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可 !【手机吧】_百度贴吧...
  6. 怎么让车辆gps定位失效_如何更有效地检测车辆gps定位器?
  7. python控制步进电机驱动器_树莓派操作案例1-使用python GPIO+TB6612驱动步进电机
  8. Chapter1-1_Speech_Recognition(Overview)
  9. LeetCode 2176. 统计数组中相等且可以被整除的数对
  10. LeetCode 161. 相隔为 1 的编辑距离(DP/遍历)