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基础使用方法的更多相关文章

  1. JAVA之Mybatis基础入门--框架搭建与简单查询

    JAVA中,操作数据库有JDBC.hibernate.Mybatis等技术,今天整理了下,来讲一讲下Mybatis.也为自己整理下文档: hibernate是一个完全的ORM框架,是完全面向对象的.但 ...

  2. MyBatis基础入门《二十》动态SQL(foreach)

    MyBatis基础入门<二十>动态SQL(foreach) 1. 迭代一个集合,通常用于in条件 2. 属性 > item > index > collection : ...

  3. mybatis基础系列(四)——关联查询、延迟加载、一级缓存与二级缓存

    关本文是Mybatis基础系列的第四篇文章,点击下面链接可以查看前面的文章: mybatis基础系列(三)——动态sql mybatis基础系列(二)——基础语法.别名.输入映射.输出映射 mybat ...

  4. mybatis基础系列(二)——基础语法、别名、输入映射、输出映射

    增删改查 mapper根节点及其子节点 mybatis框架需要读取映射文件创建会话工厂,映射文件是以<mapper>作为根节点,在根节点中支持9个元素,分别为insert.update.d ...

  5. MyBatis基础入门《十八》动态SQL(if-where)

    MyBatis基础入门<十八>动态SQL(if-where) 描述: 代码是在<MyBatis基础入门<十七>动态SQL>基础上进行改造的,不再贴所有代码,仅贴改动 ...

  6. MyBatis基础入门《十七》动态SQL

    MyBatis基础入门<十七>动态SQL 描述: >> 完成多条件查询等逻辑实现 >> 用于实现动态SQL的元素主要有: > if > trim > ...

  7. MyBatis基础入门《十二》删除数据 - @Param参数

    MyBatis基础入门<十二>删除数据 - @Param参数 描述: 删除数据,这里使用了@Param这个注解,其实在代码中,不使用这个注解也可以的.只是为了学习这个@Param注解,为此 ...

  8. MyBatis基础入门《八》查询参数传入Map

    MyBatis基础入门<八>查询参数传入Map 描述: 在执行select查询数据的时候,方法传入的参数是java.util.Map类型. 接口方法: xml文件 注意: 书写SQL语句的 ...

  9. MyBatis基础入门《七》查询参数传入对象

    MyBatis基础入门<七>查询参数传入对象 描述: 在执行查询语句的时候,传入的参数是一个对象,依据对象的属性,进行检索数据.此时,书写SQL语句中的条件时,其参数需要和对象中的属性保持 ...

随机推荐

  1. 2021S软件工程——结对项目第三阶段

    2021S软件工程--结对项目第三阶段 2021春季软件工程(罗杰 任健) 项目地址 1020 1169 1 实践反思 1.1 问题分析 两人习惯不一致 没有具体制定时间节点 写完代码才开始" ...

  2. 1076 Forwards on Weibo

    Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may ...

  3. TP5学习记录(Model篇)

    ThinkPHP 数据库操作 数据库连接 #在config/database.php设置数据库连接参数或者利用Db::connect()方法设置数据库连接 /* * public static fun ...

  4. hdu3336 KMP + DP 前缀数组出现的次数

    题意:       给你一个串,问你他的所有前缀子串在本串中的出现次数,注释:abc的前缀子串是 a ab abc; 思路:      还是利用了next数组,先对子串求出next数组,再开一个数组d ...

  5. POJ3614奶牛晒阳光DINIC或者贪心

    题意:       n个区间,m种点,每种点有ci个,如果一个点的范围在一个区间上,那么就可以消耗掉一个区间,问最多可以消耗多少个区间,就是这n个区间中,有多少个可能被抵消掉. 思路:       方 ...

  6. POJ3189二分最大流(枚举下界,二分宽度,最大流判断可行性)

    题意:       有n头猪,m个猪圈,每个猪圈都有一定的容量(就是最多能装多少只猪),然后每只猪对每个猪圈的喜好度不同(就是所有猪圈在每个猪心中都有一个排名),然后要求所有的猪都进猪圈,但是要求所有 ...

  7. MySQL数据库及注入方法

    目录 MySQL数据库 mysql中比较常用的一些函数: 判断MySQL数据库是否存在SQL注入 MySQL数据库文件结构 MySQL数据库密码破解 MySQL UDF提权 MySQL数据库 MySQ ...

  8. node-redis基本操作

    //npm install redis var redis = require("redis"), client = redis.createClient(); client.se ...

  9. Docker Swarm删除节点

    节点上的主机如果想离开的话,可以自己直接执行docker swarm leave 然后你可以发现,原本跑在自己上面的容器被转移到别的容器上了.此时如果在manager节点上docker node ls ...

  10. IOS Widget(4-1):创建可配置小组件(静态配置数据)

    引言   经过前面几篇文章阅读,已经掌握开发一款小组件的基本技能了,接下来开始掌握一些相对高级一点的技能.本文创建一个可配置小组件,通过修改时间类型,让Text空间显示不同格式的时间. 本文大纲 添加 ...