初识mybatis之入门案例

瞿亮      2022-02-13     605

关键词:

我也是自学了一下,在idea中基于maven的mybatis的配置。有什么不对的地方,请指正,谢谢。

 

1.1咋们先来配置测试一下,配置mybatis的图解

 

1.2 pom.xml需要mybatis的依赖节点,节点如下:

 1 <dependencies>
 2     <dependency>
 3         <groupId>org.mybatis</groupId>
 4         <artifactId>mybatis</artifactId>
 5         <version>3.3.0</version>
 6     </dependency>
 7     <dependency>
 8         <groupId>mysql</groupId>
 9         <artifactId>mysql-connector-java</artifactId>
10         <version>5.1.29</version>
11     </dependency>
12     <dependency>
13         <groupId>junit</groupId>
14         <artifactId>junit</artifactId>
15         <version>4.12   </version>
16         <scope>test</scope>
17     </dependency>
18     <dependency>
19         <groupId>log4j</groupId>
20         <artifactId>log4j</artifactId>
21         <version>1.2.17</version>
22     </dependency>
23     <dependency>
24         <groupId>org.slf4j</groupId>
25         <artifactId>slf4j-api</artifactId>
26         <version>1.7.12</version>
27     </dependency>
28     <dependency>
29         <groupId>org.slf4j</groupId>
30         <artifactId>slf4j-log4j12</artifactId>
31         <version>1.7.12</version>
32     </dependency>
33 </dependencies>
节点

 

1.3创建数据库脚本:(MySQL数据库、数据库叫mybatis

 

 1 /*
 2 SQLyog v10.2 
 3 MySQL - 5.7.12-log : Database - mybatis
 4 *********************************************************************
 5 */
 6 /*!40101 SET NAMES utf8 */;
 7 /*!40101 SET SQL_MODE=''*/;
 8 /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
 9 /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
10 /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
11 /*Table structure for table `person` */
12 CREATE TABLE `person` (
13 `ID` int(11) DEFAULT NULL,
14 `USERNAME` varchar(30) DEFAULT NULL,
15 `AGE` int(11) DEFAULT NULL,
16 `MOBiLEPHONE` varchar(30) DEFAULT NULL
17 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
18 /*Data for the table `person` */
19 insert  into `person`(`ID`,`USERNAME`,`AGE`,`MOBiLEPHONE`) values (1,'神奇',18,'1361165680');
20 /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
21 /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
22 /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
数据库脚本

 

 

1.4 MybatisUtil 创建工具类

 

 1 package utils;
 2 import org.apache.ibatis.io.Resources;
 3 import org.apache.ibatis.session.SqlSession;
 4 import org.apache.ibatis.session.SqlSessionFactory;
 5 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 6 import java.io.IOException;
 7 import java.io.Reader;
 8 /**
 9  * Created by 123 on 2017/06/29.
10  */
11 public class MybatisUtil {
12     private final  static SqlSessionFactory sqlSessionFactory;
13 
14     static {
15         String resource="mybatis-config.xml";
16         Reader reader =null;
17         try {
18             reader = Resources.getResourceAsReader(resource);
19         } catch (IOException e) {
20             e.printStackTrace();
21         }
22         sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
23     }
24 
25     /**
26      * 获取SqlSessionFactory
27      * @return SqlSessionFactory
28      */
29     public static SqlSessionFactory getSqlSessionFactory(){
30         return sqlSessionFactory;
31     }
32 
33     /**
34      * 获取SqlSession
35      * @return SqlSession
36      */
37     public static SqlSession getSqlSession(){
38         return sqlSessionFactory.openSession();
39     }
40     /**
41      * 关闭SqlSession
42      */
43     public  static void closeSession(SqlSession sqlSession){
44         if (sqlSession!=null)
45             sqlSession.close();
46     }
47 }
工具类

 

 

1.5Person实体类

 1 package model;
 2 
 3 /**
 4  * Created by 123 on 2017/06/29.                
 5  */
 6 public class Person {
 7     private int id;
 8     private String userName ;
 9     private int age ;
10     private String mobilePhone ;
11 
12     public Person() {
13         this.id = id;
14         this.userName = userName;
15         this.age = age;
16         this.mobilePhone = mobilePhone;
17     }
18 
19     public int getId() {
20 
21         return id;
22     }
23 
24     public void setId(int id) {
25         this.id = id;
26     }
27 
28     public String getUserName() {
29         return userName;
30     }
31 
32     public void setUserName(String userName) {
33         this.userName = userName;
34     }
35 
36     public int getAge() {
37         return age;
38     }
39 
40     public void setAge(int age) {
41         this.age = age;
42     }
43 
44     public String getMobilePhone() {
45         return mobilePhone;
46     }
47 
48     public void setMobilePhone(String mobilePhone) {
49         this.mobilePhone = mobilePhone;
50     }
51 }
实体类

 

1.6 Person.xml 实体类查询配置文件

 

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 3 <mapper namespace="com">
 4     <insert id="insertPerson" parameterType="Person" >
 5         INSERT INTO PERSON(ID,USERNAME,AGE,MOBILEPHONE)VALUES (#{id},#{userName},#{age},#{mobilePhone})
 6     </insert>
 7 
 8     <select id="queryById" parameterType="int" resultType="Person">   //可省略
 9         SELECT * FROM PERSON WHERE ID=#{id}
10     </select>
11 
12     <update id="updatePerson">
13         UPDATE PERSON SET USERNAME=#{userName},AGE=#{age},MOBILEPHONE=#{mobilePhone} WHERE ID=#{id}
14     </update>
15 </mapper>
小配置文件

 

 

 

 

1.7 config.properties 连接数据字段配置文件

1 driver=com.mysql.jdbc.Driver
2 url=jdbc:mysql://localhost:3306/mybatis
3 username=sa
4 password=123
连接字段(配置文件)

 

 

1.8 mybatis-config.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     <properties resource="config.properties"/>
 7     <typeAliases>
 8         <typeAlias type="model.Person" alias="Person"/>
 9     </typeAliases>
10     <environments default="development">
11         <environment id="development">
12             <transactionManager type="JDBC"/>
13             <dataSource type="POOLED">
14                 <property name="driver" value="${driver}"/>
15                 <property name="url" value="${url}"/>
16                 <property name="username" value="${username}"/>
17                 <property name="password" value="${password}"/>
18             </dataSource>
19         </environment>
20     </environments>
21     <mappers>
22         <mapper resource="mapper/Person.xml"/>
23     </mappers>
24 </configuration>
连接数据库配置文件(和上面是有关联的)

 

 

1.9 log4.properties 日志配置文件

 

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 3 <mapper namespace="com">
 4     <insert id="insertPerson" parameterType="Person" >
 5         INSERT INTO PERSON(ID,USERNAME,AGE,MOBILEPHONE)VALUES (#{id},#{userName},#{age},#{mobilePhone})
 6     </insert>
 7 
 8     <select id="queryById" parameterType="int" resultType="Person">
 9         SELECT * FROM PERSON WHERE ID=#{id}
10     </select>
11 
12     <update id="updatePerson">
13         UPDATE PERSON SET USERNAME=#{userName},AGE=#{age},MOBILEPHONE=#{mobilePhone} WHERE ID=#{id}
14     </update>
15 </mapper>
记录日志配置文件

 

2.0 PersonTest 测试类 (测试方法有两个,一个是插入数据方法,另外一个是查询对象名称方法,所以分两次截图了)

 1 import model.Person;
 2 import org.apache.ibatis.session.SqlSession;
 3 import org.junit.Test;
 4 import utils.MybatisUtil;
 5 /**
 6  * Created by 123 on 2017/06/29.
 7  */
 8 public class PersonTest {
 9     SqlSession sqlSession ;
10         @Test
11        public  void  insertPerson(){
12             sqlSession = MybatisUtil.getSqlSession();
13             Person person=new Person();
14             person.setId(1);
15             person.setAge(18);
16             person.setMobilePhone("1361165680");
17             person.setUserName("神奇");
18             try {
19                 sqlSession.insert("insertPerson",person);
20                 sqlSession.commit();
21             } catch (Exception e) {
22                 e.printStackTrace();
23             } finally {
24                 MybatisUtil.closeSession(sqlSession);
25             }
26         }
27 
28 
29         @Test
30        public  void queryById(){
31             sqlSession=MybatisUtil.getSqlSession();
32 
33             try {
34                 Person person =sqlSession.selectOne("queryById",1);
35                 sqlSession.commit();
36                 System.out.println(person.getUserName());
37             } catch (Exception e) {
38                 e.printStackTrace();
39             } finally {
40                 MybatisUtil.closeSession(sqlSession);
41             }
42         }
43 }
测试类

 

2.1最后成功插入数据,截图如下:

 

有什么问题咋们可以讨论一下,配置mybatis基础案例也接近尾声了,咋们下次再见吧。

 

初识框架之mybatis

一、什么是框架  1)传统的JDBC编程    JDBC作为Java语言连接数据库的一个重要的技能点,不可否认的是在一个程序中,如果我们需要多次进行与数据库的交互,那我们所需要的重复操作就就会有很多:      1.加载... 查看详情

mybatis程序入门案例

思路:搭建环境--->导入Mybatis--->编写代码--->测试1.1、搭建环境搭建数据库createdatabasesifnotexists`mybatis`;use`mybatis`;createtableifnotexists`user`(`id`int(20)notnull,`name`varchar(30)defaultnull,`pwd`varchar(30)de 查看详情

mybatis入门案例

  1.案例架构2.引入jar包 3.书写配置文件mybatis-config.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http://mybatis.org/dtd/mybatis-3-c 查看详情

初识quartz(入门案例)+常用的cron表达式

1.Quartz架构图1.实体层packagecn.happy.entity;//1.publicclassPlan{//时间privateStringdate;//任务privateStringtask;publicPlan(Stringdate,Stringtask){this.date=date;this.task=task;}publicPlan(){}@OverridepublicStr 查看详情

mybatis入门案例分析

mybatis入门案例分析一、设计模式分析publicclassMybatisTest{publicstaticvoidmain(String[]args)throwsException{//1.读取配置文件InputStreamin=Resources.getResourceAsStream("SqlMapConfig.xml");//2.创建SqlSessionFactor 查看详情

mybatis入门案例

mybatis简介MyBatis是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以对配置和原生Map使用简单的XML或注解,将接口和Java的POJOs(PlainOldJavaObjects,... 查看详情

mybatis入门(开发环境+入门案例)(代码片段)

Mybatis入门1.MyBatis入门1.1概述2下载3与JDBC对比4入门:搭建环境4.1构建项目4.2数据库和表:User5入门案例:查询所有5.1JavaBean:User5.2编写Dao:UserMapper5.3编写核心配置文件:SqlMapConfig.xml5.4测试类6总结1.MyBatis入... 查看详情

mybatis入门案例分享

本文分享一下,Mybatis的一些入门案例;为什么不用JDBC方式来操作数据库,而使用类似于Mybatis的框架呢?1、 数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。解决:在Sq... 查看详情

mybatis入门案例

...ResultSet  Spring的JdbcTemplate:Spring中对JDBC的简单封装4、mybatis的环境搭建  第一步:创建maven工程并导入坐标(即在pom.xml文件中 查看详情

mybatis入门以及简单案例

  这两天学习了mybatis框架,实现了简单的curd功能.有好多技术这里没有用到,在这里我用的开发工具为idea,jdk版本为1.8.   mybatis分析大概如下:MyBatis有两类配置文件:a)mybatis-condig.xml,是MyBatis的全局配置文件,包含全局配置... 查看详情

mybatis入门案例——idea版

环境:IDEA2017,jdk1.8.0,maven3.5.2 步骤:1.创建一个普通Maven工程,删掉src目录,再创建一个maveb的model命名为mybatis-012.配置 pom.xml,注入依赖(导入所需的 jar 包)<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="ht 查看详情

1mybatis入门案例(代码片段)

...入坐标 第二步:创建实体类和dao的接口 第三步:创建Mybatis的主配置文件     SqlMapConifg.xml 第四步:创建映射配置文件     IUserDao.xml2 环境搭建的注意事项第一个:创建IUserDao.xml和IUserDao.java时名称是为了和我... 查看详情

mybatis入门之增删改查

Mybatis入门之增删改查导入包:  引入配置文件:sqlMapConfig.xml(mybatis的核心配置文件)、log4j.properties(日志记录文件)<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN 查看详情

mybatis框架入门

初识mybatis对原生jdbc程序(单独使用jdbc开发)问题总结mybatis框架原理mybatis入门程序用户的增删查改mybatis开发dao两种方法原始dao开发方法(程序需要编写dao接口和dao实现类)mybatis的mapper接口(相当于dao接口)代理开发方法mybatis... 查看详情

mybatis之入门

mybatis从18年10月开始接触,一直有使用,和断断续续的学习,但是不敢说完全掌控,隔一段时间不用,就忘了如何搭建。这段时间学习重心放到JavaEE,我决定完整的学习下SSM,记录下我的历程,以后忘了回来翻一翻,比写成本地... 查看详情

《c#零基础入门之百识百例》初识c#程序--hellocsharp(代码片段)

C#零基础入门初识C#程序前言一,认识C#第一个程序1.1示例代码1.2代码解析二,C#中的注释2.1单行注释2.1.1//注释2.1.2///注释2.2多行注释三,实例练习--HelloYourName3.1题目描述3.2问题分析3.3参考代码前言本文属于C#零基础入... 查看详情

深入浅出mybatis之快速入门!

简介MyBatis的前身叫iBatis,本是apache的一个开源项目,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis。MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参... 查看详情

深入浅出mybatis之快速入门!

简介MyBatis的前身叫iBatis,本是apache的一个开源项目,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis。MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参... 查看详情