Mybatis基础使用方法
1.首先在数据库中建立一张表
create table login(
name varchar(20) not null,
username varchar(20) not null,
password int not null,
type varchar(20) not null
)
2.配置mybatis-config.xml文件(即mybatis配置文件)
<?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> <!-- <settings>-->
<!-- <setting name="LogImpl" value="log4j"/>-->
<!-- </settings>-->
<!--数据库环境配置,我用的是MySQL-->
<environments default="mysql">
<environment id="mysql">
<!--指定事务管理的类型-->
<transactionManager type="JDBC"></transactionManager>
<!--配置数据库连接源,username和password填本机的账号密码-->
<dataSource type="UNPOOLED">
<property name="driver" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/job"></property>
<property name="username" value="****"></property>
<property name="password" value="****"></property>
</dataSource>
</environment>
</environments> <mappers>
<mapper resource="com/ys/mapper/UserMapper.xml"></mapper>
</mappers>
</configuration>
这里做几个说明:
<transactionManager type="JDBC"></transactionManager>
事务管理的方式有两种,一种是JDBC,它是直接使用了JDBC的提交和回滚机制,另一种是MANGED,是将事务的管理交付给容器来操作。(结合了spring后就不需要配置事务管理器了,之后SSM结合后再来补充)
<dataSource type="UNPOOLED">
<property name="driver" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/job"></property>
<property name="username" value="****"></property>
<property name="password" value="****"></property>
</dataSource>
这里没有使用数据库连接池,毕竟是个学习过程,项目不大用连接词反而影响效率,这里的url,username,password切记换成本地数据库的信息。
这里写代码时还有个小插曲,仅代表个人想法,如果有了解实际原因的大佬,多多赐教啦
<settings>
<setting name="LogImpl" value="log4j"/>
</settings>
这个我注释掉的代码是我在整合log4j时报错:Caused by: org.apache.ibatis.builder.BuilderException: The setting LogImpl is not known. Make sure you spelled it correctly (case sensitive).
上网查到的原因说是mabtis的jar包过于老旧,换成3.2.7的就可以,可是我使用的jar包是3.4.2的,这里不知道为什么报错,反复尝试后我发现不用配置setting编译器好像会自动识别src目录下的log4j,不知道是不是mybatis在新版本将这个配置默认配置好了。
3.创建一个实体类User.java
package com.ys.pojo;
public class User {
String name;
String username;
int password;
String type;
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", username='" + username + '\'' +
", password=" + password +
", type='" + type + '\'' +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getPassword() {
return password;
}
public void setPassword(int password) {
this.password = password;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
4.编写mapper映射文件UserMapper.xml
<?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">
<mapper namespace="com.ys.mapper.UserMapper"> <!--查询所有用户信息-->
<select id="getAllUser" resultType="com.ys.pojo.User">
select * from login ;
</select> </mapper>
5.编写测试代码Test.java
package com.ys.test; import com.ys.pojo.User;
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 java.io.IOException;
import java.io.InputStream;
import java.util.List; public class Test {
public static void main(String[] args) throws IOException {
String resource= "mybatis-config.xml";
//获取mybatis配置文件
InputStream is= Resources.getResourceAsStream(resource);
//实例化工厂对象(这里参考源码发现用构建者设计模式的好处是简化对象实例化过程)
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
//实例化SqlSession对象,开启与数据库的交互
SqlSession session=factory.openSession(); List<User> list=session.selectList("getAllUser");
for (User user:list){
System.out.println(user.toString());
} } }
就此,mybatis的基本使用方法如上。
如果您看了本篇博客,觉得对您有所收获,请点击右下角的 [推荐]
如果您想转载本博客,请注明出处!
Mybatis基础使用方法的更多相关文章
- JAVA之Mybatis基础入门--框架搭建与简单查询
JAVA中,操作数据库有JDBC.hibernate.Mybatis等技术,今天整理了下,来讲一讲下Mybatis.也为自己整理下文档: hibernate是一个完全的ORM框架,是完全面向对象的.但 ...
- MyBatis基础入门《二十》动态SQL(foreach)
MyBatis基础入门<二十>动态SQL(foreach) 1. 迭代一个集合,通常用于in条件 2. 属性 > item > index > collection : ...
- mybatis基础系列(四)——关联查询、延迟加载、一级缓存与二级缓存
关本文是Mybatis基础系列的第四篇文章,点击下面链接可以查看前面的文章: mybatis基础系列(三)——动态sql mybatis基础系列(二)——基础语法.别名.输入映射.输出映射 mybat ...
- mybatis基础系列(二)——基础语法、别名、输入映射、输出映射
增删改查 mapper根节点及其子节点 mybatis框架需要读取映射文件创建会话工厂,映射文件是以<mapper>作为根节点,在根节点中支持9个元素,分别为insert.update.d ...
- MyBatis基础入门《十八》动态SQL(if-where)
MyBatis基础入门<十八>动态SQL(if-where) 描述: 代码是在<MyBatis基础入门<十七>动态SQL>基础上进行改造的,不再贴所有代码,仅贴改动 ...
- MyBatis基础入门《十七》动态SQL
MyBatis基础入门<十七>动态SQL 描述: >> 完成多条件查询等逻辑实现 >> 用于实现动态SQL的元素主要有: > if > trim > ...
- MyBatis基础入门《十二》删除数据 - @Param参数
MyBatis基础入门<十二>删除数据 - @Param参数 描述: 删除数据,这里使用了@Param这个注解,其实在代码中,不使用这个注解也可以的.只是为了学习这个@Param注解,为此 ...
- MyBatis基础入门《八》查询参数传入Map
MyBatis基础入门<八>查询参数传入Map 描述: 在执行select查询数据的时候,方法传入的参数是java.util.Map类型. 接口方法: xml文件 注意: 书写SQL语句的 ...
- MyBatis基础入门《七》查询参数传入对象
MyBatis基础入门<七>查询参数传入对象 描述: 在执行查询语句的时候,传入的参数是一个对象,依据对象的属性,进行检索数据.此时,书写SQL语句中的条件时,其参数需要和对象中的属性保持 ...
随机推荐
- IDEA中集成Git
一.新建项目,绑定GIT 1.新建spring boot项目 2.路径选择git本地文件地址 3.新的项目文件绑定git,将远程的git文件拷贝至项目中 二.修改文件,使用IDEA操作GIT 1.提 ...
- Pyqt5 combobox
起因 combobox的使用和介绍 两个combobox 联动 开始 介绍 Combobox是Qt中的下拉复选框, 注意:在添加列表选项时,可以一个个添加,也可以直接使用列表一次性添加多个: 添加多个 ...
- wordpress current_user_can 判断角色
current_user_can 使用说明: current_user_can( $capability, $args ); $capability参数是必须的,是指给予什么样的能力,或者说给他可以做 ...
- 手动脱ORiEN壳实战
作者:Fly2015 ORiEN这种壳之前没有接触,到底是压缩壳还是加密壳也不知道,只能试一试喽.需要脱壳的程序是吾爱破解脱壳练习第7期的题目. 首先对加壳程序进行查壳,这一步也是程序脱壳的必要的一步 ...
- Word/Excel文档伪装病毒-kspoold.exe分析
一. 病毒样本基本信息 样本名称:kspoold.exe 样本大小: 285184 字节 样本MD5:CF36D2C3023138FE694FFE4666B4B1B2 病毒名称:Win32/Troja ...
- Linux下的用户、组和权限
目录 一:用户和组信息的查看 查看用户信息 查看密码信息 查看组信息 特殊组wheel 二:用户和组信息的管理 用户管理 组管理 三:文件权限 文件权限的查看 文件权限的修改 ACL控制权限 setf ...
- Docker Swarm删除节点
节点上的主机如果想离开的话,可以自己直接执行docker swarm leave 然后你可以发现,原本跑在自己上面的容器被转移到别的容器上了.此时如果在manager节点上docker node ls ...
- 用PS给视频磨皮美颜
无意间找到的,但是一个10分钟的视频渲染了我一天的时间,但是效果是不错的 参考视频链接 https://www.bilibili.com/video/BV1b7411m74e 视频中涉及的添加插件链接 ...
- 【opencv】Java实现opencv 调用本地摄像头,实现人脸识别、人形识别、人眼识别
本博客为老魏原创,如需转载请留言咨询. 效果预览:(没办法,为了效果只能上像了,丑别介意.哈哈..) 上代码: 1 package com.lw.test; 2 3 import java.awt.G ...
- 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(6.B)- FlexSPI NOR连接方式大全(RT500)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT500的FlexSPI NOR启动的连接方式. 这个i.MXRT FlexSPI NOR启动连接方式系列文章,痞子衡 ...