01.MyBatis入门
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入门相关推荐
- MyBatis 01 快速入门
MyBatis 01 快速入门 文章目录 MyBatis 01 快速入门 一.学习目标 二.为什么需要框架技术 三.框架技术介绍 四.主流框架介绍 五.持久化与ORM 六.MyBatis简介 七.搭建 ...
- MyBatis-学习笔记02【02.Mybatis入门案例】
Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...
- MyBatis-学习笔记01【01.Mybatis课程介绍及环境搭建】
Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...
- Mybatis入门之动态sql
Mybatis入门之动态sql 通过mybatis提供的各种标签方法实现动态拼接sql. 1.if.where.sql.include标签(条件.sql片段) <sql id="sel ...
- MyBatis1:MyBatis入门
MyBatis是什么 MyBatis是什么,MyBatis的jar包中有它的官方文档,文档是这么描述MyBatis的: MyBatis is a first class persistence fra ...
- MyBatis(1):MyBatis入门
MyBatis是什么 MyBatis是什么,MyBatis的jar包中有它的官方文档,文档是这么描述MyBatis的: MyBatis is a first class persistence fra ...
- mybatis入门(七)之日志
转载自 mybatis入门(七)之日志 Mybatis 的内置日志工厂提供日志功能,内置日志工厂将日志交给以下其中一种工具作代理: SLF4J Apache Commons Logging Lo ...
- mybatis入门(一)之基础安装
转载自 mybatis入门 安装 要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于 classpath 中即可. 如果使用 Maven 来构建项目,则需将下面的 dep ...
- Mybatis入门程序增删改查操作
学习目标 了解Mybatis的基本知识 熟悉Mybatis的工作原理 掌握Mybatis入门程序的编写 文章目录 1.初始Mybatis 2.Mybatis入门程序 3.Mybatis操作总结 1.初 ...
最新文章
- F#探险之旅(三):命令式编程(上)
- Mac如何安装并永久激活PyCharm以及IntelliJ IDEA
- python列表解析的新方法
- 云炬Android开发笔记 10主界面-首页UI与数据解析器开发(RecyclerView)
- mysql权限清理_mysql清理用户权限
- Linux下编译、链接、加载运行C++ OpenCV的两种方式及常见问题的解决
- 计算机应用专业特色建设情况,【计算机应用论文】计算机应用类专业建设和革新探索(共3022字)...
- c语言 年月日比较大小
- 电子科技大学计算机学院王刚,电子科技大学-团体程序设计天梯赛.PDF
- (Deep learning)深度卷积网络实战——第一部分
- 控件制作之design-time attribute
- Spring发送基于freemarker模板的邮件
- php和python-Python与PHP的一些区别
- 梯度下降法理论与实践
- Unity 基础数据库操作( Myspl 和 PostgreSQL)
- 在网络世界中我们该如何保护我们的信息安全?
- ps的切片用来转换html,Photoshop切片导出HTML+CSS
- bootstrap表格标题Caption位于表格下方的原因
- vue3 + element-plus 动态绑定icon图标
- 【trick 5】warmup —— 一种学习率调优方法
热门文章
- 嵌入式杂谈之文件系统
- TQ210——启动方式
- htmlcss实例小项目_小程序websocket心跳库——websocket-heartbeat-miniprogram
- python判断对象是否实例化_Python判断对象是否相等及eq函数的讲解
- 鸿蒙系统能不能用了,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可
!【手机吧】_百度贴吧...
- 怎么让车辆gps定位失效_如何更有效地检测车辆gps定位器?
- python控制步进电机驱动器_树莓派操作案例1-使用python GPIO+TB6612驱动步进电机
- Chapter1-1_Speech_Recognition(Overview)
- LeetCode 2176. 统计数组中相等且可以被整除的数对
- LeetCode 161. 相隔为 1 的编辑距离(DP/遍历)