基于MyBatis的简单使用(推荐)
作者:坚持到底gl 发布时间:2021-10-14 14:59:46
标签:MyBatis
MyBatis
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
搭建MyBatis
第一步:先创建一个项目,平常的Java project就行,项目结构先看看
第二步:导入相关的jar包(可以上官网下,开源的):
•mybatis-3.4.4.jar MyBatis的jar包
•mysql-connector-java-5.1.13-bin.jar Mysql的jar包
第三步:编写一个配置文件。是一个XML文件mybatis-config.xml,位置放在src下
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mobile"/>
<property name="username" value="zhou"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/entity/UserMapper.xml"/>
</mappers>
</configuration>
有关MyBatis中xml文件的属性说明:
<!-- 配置文件的根元素 -->
<configuration>
<!-- 属性:定义配置外在化 -->
<properties></properties>
<!-- 设置:定义mybatis的一些全局性设置 -->
<settings>
<!-- 具体的参数名和参数值 -->
<setting name="" value=""/>
</settings>
<!-- 类型名称:为一些类定义别名 -->
<typeAliases></typeAliases>
<!-- 类型处理器:定义Java类型与数据库中的数据类型之间的转换关系 -->
<typeHandlers></typeHandlers>
<!-- 对象工厂 -->
<objectFactory type=""></objectFactory>
<!-- 插件:mybatis的插件,插件可以修改mybatis的内部运行规则 -->
<plugins>
<plugin interceptor=""></plugin>
</plugins>
<!-- 环境:配置mybatis的环境 -->
<environments default="">
<!-- 环境变量:可以配置多个环境变量,比如使用多数据源时,就需要配置多个环境变量 -->
<environment id="">
<!-- 事务管理器 -->
<transactionManager type=""></transactionManager>
<!-- 数据源 -->
<dataSource type=""></dataSource>
</environment>
</environments>
<!-- 数据库厂商标识 -->
<databaseIdProvider type=""></databaseIdProvider>
<!-- 映射器:指定映射文件或者映射类 -->
<mappers></mappers>
</configuration>
第四步:创建实体类,这个不用多说了,正常创建就ok
第五步:创建实体类的mapper映射xml文件,位置跟实体类同级,是对实体类的一些操作,在我认为就是配置了sql语句的赶脚,再去方法里调一下
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace可以不加xml后缀 -->
<mapper namespace="com.entity.UserMapper">
<!-- 单个对象查询 -->
<select id="selectUser" parameterType="int" resultType="com.entity.User">
select * from user where id = #{id}
</select>
<!--查询列表 -->
<resultMap id="userList" type="com.entity.User">
<result property="id" column="id" />
<result property="username" column="username"/>
<result property="password" column="password"/>
</resultMap>
<select id="selectAll" resultMap="userList">
select * from user
</select>
<!--插入数据 -->
<insert id="insert" >
insert into User (username,password) values(#{username},#{password})
</insert>
<!--更新数据 -->
<update id="update">
update User set username = #{username},password = #{password} where id = #{id}
</update>
<!--删除数据 -->
<delete id="delete">
delete from User where id = #{id}
</delete>
</mapper>
实体类映射的属性说明:先看前几个后面的遇到再说,百度就可以
第六步:编写一下测试类,测试一下你搭建的是否有用
package com.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
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 com.entity.User;
/**
*
* @author 坚持到你GL
*
*/
public class Test {
private static SqlSession session=null;
public static SqlSession mySession() {
//你的MyBatis的配置文件地址
String resource = "mybatis-config.xml";
InputStream inputStream=null;
try {
//IO解析xml文件
inputStream = Resources.getResourceAsStream(resource);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//创建一个SqlSessionFactoryBuilder对象,获得SqlSessionFactory 的实例
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//开启SqlSession
session=sqlSessionFactory.openSession();
return session;
}
private static void select(){
//selectUser是实体类映射文件的中设置的id
User user=mySession().selectOne("selectUser",2);
System.out.println(user);
}
private static void selectAll() {
List<User> list=mySession().selectList("selectAll");
for (User user : list) {
System.out.println(user);
}
}
private static void insert() {
User insertuser=new User("zhou","123456");
mySession().insert("insert",insertuser);
session.commit();
}
private static void update() {
User updateuser =new User(9,"admin","admin");
mySession().update("update", updateuser);
session.commit();
}
private static void delect() {
mySession().delete("delete", 10);
session.commit();
}
public static void main(String[] args) {
selectAll();
}
}
小项目微服务简单的开发,运用MyBatis是非常不错的选择
来源:http://www.cnblogs.com/zhouguanglin/archive/2017/10/09/7643603.html


猜你喜欢
- 先说一句:密码是无法解密的。大家也不要再问松哥微人事项目中的密码怎么解密了!密码无法解密,还是为了确保系统安全。今天松哥就来和大家聊一聊,密
- 话不多说,上来就是干!?1234567891011121314151617181920212223242526272829303132333
- 一、前言在mybatis官网中,有插件一说 mybatis plugins 如果同时有多个插件,那么他们的执行顺序是怎样的?二、准备工作、代
- 判断参数是否为空并作为查询条件@Override public Page<DemandEntity>
- package com.wanmei.meishu;import java.io.FileInputStream;import java.i
- 标准函数标准函数就是在Standard.kt文件中定义的函数,任何Kotlin代码都可以自由地调用所有的标准函数let函数就属于是一个标准函
- 简介我们在使用flutter的过程中,有时候需要控制某些组件是否展示,一种方法是将这个组件从render tree中删除,这样这个组件就相当
- 一般都在windows下开发的,现在部署到linux下:1,将项目达成war包(用eclipse,项目右键-->Export-->
- 目录无SpringMVC全局异常时的流程图SpringMVC全局异常流程图其实是一个ModelAndView对象配置文件applicatio
- Jedis事务我们使用JDBC连接Mysql的时候,每次执行sql语句之前,都需要开启事务;在MyBatis中,也需要使用openSessi
- 在java中用到的最多的时间类莫过于 java.util.Date了, 由于Date类中将getYear(),getMonth()等获取年、
- BeanDefinitionRegistryPostProcessor概述可以看到BeanDefinitionRegistryPostPro
- Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一。如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都
- 在html中大家都知道布局是什么意思了,简单来说就是将页面划分模块,比如html中的div、table等。那么Android中也是这样的。A
- 再看文章之前,希望大家先打开自己的微信点到朋友圈中去,仔细观察是不是发现朋友圈里的有个“九宫格”的图片区域,点击图片又会跳到图片的详细查看页
- 在 Android 中倒计时功能是比较常用的一个功能,比如短信验证码,付款倒计时等。实现方式有Handler、Thread 等,但是实现起来
- 通常在 java 中对文本、网络资源等操作起来是很繁杂的,要声明,读取,关闭三个阶段,还得考虑异常情况。假设我们要读取一段文本显示到控制台,
- 作者: juky_huang 事件的简单解释: 事件是对象发送的消息,以发信号通知操作的发生。操作可能是由用户交互(例如
- 本文实例为大家分享了java字符串和数字转换工具的具体代码,供大家参考,具体内容如下package com.test.util;/** *
- Java中Stop-The-World机制简称STW,是在执行垃圾收集算法时,Java应用程序的其他所有线程都被挂起(除了垃圾收集帮助器之外