1,配置

MyBatis实现映射器的2种方式:XML文件形式和注解形式,下文主要是用xml形式,比较好维护

mybatis-config.xml文件:

<?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">
<!-- 填写自己的mysql用户名和密码, 还有连接的url要加上"?serverTimezone=GMT%2B8"不然会报错 -->
<configuration>
<!--环境的配置... -->
<properties resource="jdbc-prod.properties"/>
<settings>
<!--其他配置... -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
<!--其他配置... -->
</settings>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="${database.url}" />
<property name="username" value="${database.username}" />
<property name="password" value="${database.password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/ActionMapper.xml"/>
<mapper resource="mapper/OperatorMapper.xml"/>
</mappers>
</configuration>

jdbc-dev.properties文件:

database.url=jdbc:mysql://localhost:3306/demo?serverTimezone=GMT%2B8
database.username=root
database.password=

2,使用

新建数据表

新建实体:

package com.hanlin.bean;

import java.util.List;

public class User {

    private int id;

    private String name;

    private String address;

    private List<Computer> computerList;

    public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getAddress() {
return address;
} public void setAddress(String address) {
this.address = address;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public List<Computer> getComputerList() {
return computerList;
} public void setComputerList(List<Computer> computerList) {
this.computerList = computerList;
} @Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", address='" + address + '\'' +
", computerList=" + computerList +
'}';
}
}
package com.hanlin.bean;

public class Computer {
private int id;
private String name; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} @Override
public String toString() {
return "Computer{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
ComputerMapper文件:
package com.hanlin.mapper;

import com.hanlin.bean.Computer;
import com.hanlin.bean.User; import java.util.List; public interface ComputerMapper { List<User> getList(); }

computer.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.hanlin.mapper.ComputerMapper">
<resultMap id="UserMap" type="com.hanlin.bean.User">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="address" column="address"/>
<collection property="computerList" ofType="com.hanlin.bean.Computer">
<id property="id" column="computer_id"/> //这个id要自己另外起别名
<result property="name" column="computer_name"/>
</collection>
</resultMap> <select id="getList" resultMap="UserMap">
select u.*,c.`name`as computer_name from computer as c RIGHT JOIN user as u on u.id = c.user_id;
</select> </mapper>
SqlSessionFactoryUtil文件:
package com.hanlin.util;

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.io.Reader; public class SqlSessionFactoryUtil {
private static final String resource = "mybatis-cfg.xml"; public static SqlSession getSqlSession() throws IOException {
//获取配置的资源文件
Reader reader = Resources.getResourceAsReader(resource);
//得到SqlSessionFactory,使用类加载器加载xml文件
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
//得到sqlsession对象,这个对象就能执行配置文件中的sql语句啦
SqlSession session = factory.openSession(); return session;
}
}
UserTest文件:
public class UserTest {

    public static void main(String[] args) throws Exception{
SqlSession session = SqlSessionFactoryUtil.getSqlSession();
System.out.println("********************************************"); ComputerMapper computerMapper = session.getMapper(ComputerMapper.class);
List<User> userList = computerMapper.getList();
for (User user:userList){
System.out.println(user.toString());
}
}
}

运行结果

mybatis配置和使用的更多相关文章

  1. spring MVC、mybatis配置读写分离

    spring MVC.mybatis配置读写分离 1.环境: 3台数据库机器,一个master,二台slave,分别为slave1,slave2 2.要实现的目标: ①使数据写入到master ②读数 ...

  2. Mybatis配置

      首先导入mybatis-3.2.3.jar包 还有连接数据库的驱动包   工程中必须导入的三个包(对应的包附件中可以下载):   mybatis-3.2.3.jar sqljdbc.jar log ...

  3. Spring+Mybatis配置

    Spring+Mybatis配置 之前做项目的时候用到了spring+mybatis框架,一直想抽空整理一下 Mybatis: mybatis是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架 ...

  4. 2 将mybatis配置到springmvc中

    为了更方便的连接数据库,将mybatis配置到springMVC中 1).  首先是jar包    多了3个jar  druid 这个是阿里的数据库连接包      mybatis和 mybatis- ...

  5. 项目总结2——mybatis配置的理解

    之前的项目基本上都是用mongodb,以至于mysql相关的知识异常薄弱,这次连续一个半月的加班,总算是实际用到了mysql,也使自己对mysql了解的更多,对mybatis了解的更多,这里就说一说经 ...

  6. mybatis 配置 log4j 日志

    mybatis 配置 log4j 日志 使用Mybatis的时候,可能需要输出(主要是指sql,参数,结果)日志,查看执行的SQL语句,以便调试,查找问题. 测试Java类中需要加入代码: stati ...

  7. spring+myBatis 配置多数据源,切换数据源

    注:本文来源于  tianzhiwuqis <spring+myBatis 配置多数据源,切换数据源> 一个项目里一般情况下只会使用到一个数据库,但有的需求是要显示其他数据库的内容,像这样 ...

  8. Mybatis配置信息浅析 MyBatis简介(二)

    官方文档入门篇中有明确说明 每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的. SqlSessionFactory 的实例可以通过 SqlSessionF ...

  9. mybatis配置与使用

    一:Mybatis简介 1.名称由来 Mybatis原名叫ibatis.Mybatis一开始属于Apache,2010年从Apache转移到了GoogleCode这个组织中. 2.Mybatis概念 ...

  10. SpringBoot+Mybatis配置Pagehelper分页插件实现自动分页

    SpringBoot+Mybatis配置Pagehelper分页插件实现自动分页 **SpringBoot+Mybatis使用Pagehelper分页插件自动分页,非常好用,不用在自己去计算和组装了. ...

随机推荐

  1. ShoneSharp语言(S#)软件更新13.7版

    ShoneSharp语言(S#)编辑解析运行器 软件更新13.7版 作者:Shone 近期在写博客过程中对S#进行增强,把语法规则更新到2.0版,并同步更新软件到ShoneSharp.13.7.exe ...

  2. python 日期、时间

    1.字符类型的时间 转为 时间数组 t1 = '2013-10-10 23:40:00'timeArray = time.strptime(t1, "%Y-%m-%d %H:%M:%S&qu ...

  3. mac+mamp安装composer

    打开终端 php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"   安 ...

  4. Git链接http转ssh

    git remote set-url origin git@gitserver:USERNAME/PROJECT.git

  5. 使用 fileupload 组件完成文件的上传应用

    1. 使用 fileupload 组件完成文件的上传应用 commons-dbutils-1.3.jarcommons-fileupload-1.2.1.jar 1). 需求: > 在 uplo ...

  6. 突发!HashiCorp禁止在中国使用企业版VAULT软件

    目录 前言 HashiCorp公司介绍 HashiCorp旗下的软件 Provision Secure Connect Run 总结 前言 昨天HashiCorp突然发布一则消息,禁止在中国使用Vau ...

  7. 公司如何通过电脑监控来规范员工行为-iis7服务器管理功能教程

    现在员工办公基本都用电脑,而电脑不仅仅可以用来处理工作,还可以上网.娱乐等.往往很多员工的自制能力比较差,在工作时间和人聊天,浏览购物网站,看新闻,炒股等休闲娱乐上花费大量的时间,导致工作效率降低,影 ...

  8. Rocket - diplomacy - LazyModule实例:Buffer

    https://mp.weixin.qq.com/s/j1M9ZOTtqvc1Fv9T6dy9kg   以tilelink下的Buffer为例,介绍LazyModule如何组织内部的节点和模块.   ...

  9. Chisel3 - 接口方向(Direction)

    https://mp.weixin.qq.com/s/36jreQGpDLCCNfmUwI34lA   模块接口有三种方向:Input/Output/Inout.Chisel在声明模块接口的时候,也需 ...

  10. rewrite和return的简单需求

    Rewrite 需求作业 背景:现在我有一个网站,www.linux.com www.linux.com访问主页面 friend.linux.com访问交友页面 blog.linux.com访问博客页 ...