• mybatis概述:

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

  • 安装mybatis:

    1.方式一:直接将mybatis-x.x.x.jar文件放置在classpath中,一般情况不用这种。

    2.方式二:使用 Maven 来创建项目,将下面的 dependency 代码置于 pom.xml 文件中,该方法电脑要连接网络下载配置所需的文件(有时候maven会有点慢,等一下):

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId>
<artifactId>MybatisDemo_1</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 记得加下面这一行-->
<packaging>jar</packaging> <dependencies>
<dependency>
<!-- 这个依赖是为了获取mybatis包-->
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>x.x.x</version>
</dependency>
<dependency>
<!-- 这个依赖是为了获取mysql数据库包-->
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>
<dependency>
<!-- 这个依赖是为了获取日志信息-->
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
<!--一般必须配置的就是mybatis包,数据库包,其他项可以根据自己情况而配置 -->
</dependencies>
</project>

到这里maven的基本配置就结束了,接下来演示一个入门案例.


  • 前期准备:创建数据库和数据表

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(32) NOT NULL COMMENT '用户名称',
`birthday` datetime default NULL COMMENT '生日',
`sex` char(1) default NULL COMMENT '性别', `address` varchar(256) default NULL COMMENT '地址',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into user(`id`,`username`,`birthday`,`sex`,`address`) values
(1,'小琼','2018-02-27 17:47:08','女','宣威'),
(2,'小琼琼','2018-03-02 15:09:37','女','南宁'),
(3,'大琼','2018-03-04 11:34:34','女','北海'),
(4,'琼琼','2018-03-04 12:04:06','女','云南'),
(5,'琼包','2018-03-07 17:37:26','男','广西'),
(6,'小杨','2018-03-08 11:44:00','女','贵州');
select * from USER;

一.mybatis环境配置:创建实体类和Dao接口

1.在src/main/java下面创建一个三层级的目录结构:com/Test/Usercom/Test/Dao,其中在Test目录下面有两个文件夹UserDao

2.User.java中定义属性名和数据库中user表的字段名一致。

package com.Test.User;

import java.io.Serializable;
import java.util.Date; public class User implements Serializable {
private Integer id;
private String username;
private Date birthday;
private String sex;
private String address; public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public Date getBirthday() {
return birthday;
} public void setBirthday(Date birthday) {
this.birthday = birthday;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} public String getAddress() {
return address;
} public void setAddress(String address) {
this.address = address;
} @Override
public String toString() {
return "User[" +
"id=" + id +
", username='" + username + '\'' +
", birthday=" + birthday +
", sex='" + sex + '\'' +
", address='" + address + '\'' +
']';
}
}

3.UserDao.java中提供查询数据库表中所有数据的方法,UserDao.java是一个接口。

package com.Test.Dao;

import com.Test.User.User;

import java.util.List;

/*
用户持久层接口
*/
public interface UserDao {
<!-- @Select("select * from user")如果这里使用注解来配置,那么SqlMapConfig.xml的mapper 就不一样 -->
List<User> findAll();
}

二.配置mybatis主文件 : SqlMapConfig.xml

SqlMapConfig.xml文件一开始是没有的,需要自己建,而且需要建在resources目录下:

<?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="mysql">
<!-- 配置mysql的环境 -->
<environment id="mysql">
<!-- 配置事物类型-->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置连接池(数据源)-->
<dataSource type="POOLED">
<!-- 配置数据库的基本信息-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/数据库名"/>
<property name="username" value="数据库登录名"/>
<property name="password" value="数据库登录密码"/>
</dataSource>
</environment>
</environments> <mappers >
<!--由于此处使用到了UserDao.xml文件,所以需要在resources目录下面创建 com/Test/Dao这样一个目录并且创建UserDao.xml文件,-->
<mapper resource="com/Test/Dao/UserDao.xml"></mapper>
<!--<mapper class="com.Test.Dao.UserDao"></mapper> 如果使用注解,那就这样设置-->
</mappers>
</configuration>

三.配置UserDao.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">
<!-- 这里的namespace必须写UserDao.xml对应文件UserDao的全路径-->
<mapper namespace="com.Test.Dao.UserDao">
<select id="findAll">
select * from user
</select>
</mapper>

mybatis的配置基本就完成了,下一篇讲实际操作。

2.User.java中定义属性名和数据库中user表的字段名一致。

package com.Test.User;

import java.io.Serializable;
import java.util.Date; public class User implements Serializable {
private Integer id;
private String username;
private Date birthday;
private String sex;
private String address; public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public Date getBirthday() {
return birthday;
} public void setBirthday(Date birthday) {
this.birthday = birthday;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} public String getAddress() {
return address;
} public void setAddress(String address) {
this.address = address;
} @Override
public String toString() {
return "User[" +
"id=" + id +
", username='" + username + '\'' +
", birthday=" + birthday +
", sex='" + sex + '\'' +
", address='" + address + '\'' +
']';
}
}

3.UserDao.java中提供查询数据库表中所有数据的方法,UserDao.java是一个接口。

package com.Test.Dao;

import com.Test.User.User;

import java.util.List;

/*
用户持久层接口
*/
public interface UserDao {
<!-- @Select("select * from user")如果这里使用注解来配置,那么SqlMapConfig.xml的mapper 就不一样 -->
List<User> findAll();
}

二.配置mybatis主文件 : SqlMapConfig.xml

SqlMapConfig.xml文件一开始是没有的,需要自己建,而且需要建在resources目录下:

<?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="mysql">
<!-- 配置mysql的环境 -->
<environment id="mysql">
<!-- 配置事物类型-->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置连接池(数据源)-->
<dataSource type="POOLED">
<!-- 配置数据库的基本信息-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/数据库名"/>
<property name="username" value="数据库登录名"/>
<property name="password" value="数据库登录密码"/>
</dataSource>
</environment>
</environments> <mappers >
<!--由于此处使用到了UserDao.xml文件,所以需要在resources目录下面创建 com/Test/Dao这样一个目录并且创建UserDao.xml文件,-->
<mapper resource="com/Test/Dao/UserDao.xml"></mapper>
<!--<mapper class="com.Test.Dao.UserDao"></mapper> 如果使用注解,那就这样设置-->
</mappers>
</configuration>

三.配置UserDao.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">
<!-- 这里的namespace必须写UserDao.xml对应文件UserDao的全路径-->
<mapper namespace="com.Test.Dao.UserDao">
<select id="findAll">
select * from user
</select>
</mapper>

mybatis的配置基本就完成了,下一篇讲实际操作。

2.User.java中定义属性名和数据库中user表的字段名一致。

package com.Test.User;

import java.io.Serializable;
import java.util.Date; public class User implements Serializable {
private Integer id;
private String username;
private Date birthday;
private String sex;
private String address; public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public Date getBirthday() {
return birthday;
} public void setBirthday(Date birthday) {
this.birthday = birthday;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} public String getAddress() {
return address;
} public void setAddress(String address) {
this.address = address;
} @Override
public String toString() {
return "User[" +
"id=" + id +
", username='" + username + '\'' +
", birthday=" + birthday +
", sex='" + sex + '\'' +
", address='" + address + '\'' +
']';
}
}

3.UserDao.java中提供查询数据库表中所有数据的方法,UserDao.java是一个接口。

package com.Test.Dao;

import com.Test.User.User;

import java.util.List;

/*
用户持久层接口
*/
public interface UserDao {
<!-- @Select("select * from user")如果这里使用注解来配置,那么SqlMapConfig.xml的mapper 就不一样 -->
List<User> findAll();
}

二.配置mybatis主文件 : SqlMapConfig.xml

SqlMapConfig.xml文件一开始是没有的,需要自己建,而且需要建在resources目录下:

<?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="mysql">
<!-- 配置mysql的环境 -->
<environment id="mysql">
<!-- 配置事物类型-->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置连接池(数据源)-->
<dataSource type="POOLED">
<!-- 配置数据库的基本信息-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/数据库名"/>
<property name="username" value="数据库登录名"/>
<property name="password" value="数据库登录密码"/>
</dataSource>
</environment>
</environments> <mappers >
<!--由于此处使用到了UserDao.xml文件,所以需要在resources目录下面创建 com/Test/Dao这样一个目录并且创建UserDao.xml文件,-->
<mapper resource="com/Test/Dao/UserDao.xml"></mapper>
<!--<mapper class="com.Test.Dao.UserDao"></mapper> 如果使用注解,那就这样设置-->
</mappers>
</configuration>

三.配置UserDao.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">
<!-- 这里的namespace必须写UserDao.xml对应文件UserDao的全路径-->
<mapper namespace="com.Test.Dao.UserDao">
<select id="findAll">
select * from user
</select>
</mapper>

mybatis的配置基本就完成了,下一篇讲实际操作。

Mybatis基础(一)的更多相关文章

  1. myBatis 基础测试 表关联关系配置 集合 测试

    myBatis 基础测试 表关联关系配置 集合 测试 测试myelipse项目源码 sql 下载 http://download.csdn.net/detail/liangrui1988/599388 ...

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

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

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

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

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

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

  5. mybatis基础系列(三)——动态sql

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

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

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

  7. mybatis基础系列(一)——mybatis入门

    好久不发博客了,写博文的一个好处是能让心静下来,整理下之前学习过的一些知识一起分享,大神路过~ mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射. ...

  8. MyBatis基础入门《十九》动态SQL(set,trim)

    MyBatis基础入门<十九>动态SQL(set,trim) 描述: 1. 问题 : 更新用户表数据时,若某个参数为null时,会导致更新错误 2. 分析: 正确结果: 若某个参数为nul ...

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

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

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

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

随机推荐

  1. codeforces 600E E. Lomsat gelral (线段树合并)

    codeforces 600E E. Lomsat gelral 传送门:https://codeforces.com/contest/600/problem/E 题意: 给你一颗n个节点的树,树上的 ...

  2. shell截取字符串的8种方法

    参考文献: linux中shell截取字符串方法总结 [Linux]如何在Shell脚本中计算字符串长度? 截取字符串的方法一共有八种,主要为以下方法 shell中截取字符串的方法有很多中, ${ex ...

  3. 小心Powershell的位数

    我们都知道64位的 Windows 中有两个Powershell,32位的 Windows Powershell(x86)和64位的 Windows Powershell.(当然,32位的Window ...

  4. Channel 9视频整理【2】

    JadeChang https://channel9.msdn.com/Niners/JadeChang 繁体中文视频 2016 Nano Server / Docker / Containers 打 ...

  5. 使用 AT 指令进行 Socket 通信

    BC26 支持使用 Socket 进行 TCP 和 UDP 协议通信,这两个协议也是 BC26 支持的众多通信协议的基础.本文讲解如何使用这两个协议与服务器端进行通信.在学习这篇文章前,请首先使用AT ...

  6. 0018 CSS注释(简单)

    CSS注释规则: /* 需要注释的内容 */ 进行注释的,即在需要注释的内容前使用 "/*" 标记开始注释,在内容的结尾使用 "*/"结束. 例如: p { / ...

  7. Linux中安装软件和各种常用命令

    1.Centos7中安装mysql5.7的链接:http://blog.csdn.net/fanpeizhong/article/details/73557202 2.修改mysql默认密码的链接:h ...

  8. requests + bs4 爬取豌豆荚所有应用的信息

    1.分析豌豆荚的接口的规律 - 获取所有app的接口url 2.往每一个接口发送请求,获取json数据 解析并提取想要的数据 app_data: 1.图标 app_img_url 2.名字 app_n ...

  9. 【一起学源码-微服务】Nexflix Eureka 源码十二:EurekaServer集群模式源码分析

    前言 前情回顾 上一讲看了Eureka 注册中心的自我保护机制,以及里面提到的bug问题. 哈哈 转眼间都2020年了,这个系列的文章从12.17 一直写到现在,也是不容易哈,每天持续不断学习,输出博 ...

  10. 小小知识点(三十)集中式大规模和无小区大规模MIMO

    集中式大规模MIMO 同一小区的所有接入点( access point,AP) 布置在同一个基站( base station,BS) 中,并且 AP 之间的间距非常小,这种布置方式称为集中式大规模MI ...