• 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. KETTLE4个工作中有用的复杂实例--1、数据定时自动(自动抽取)同步作业

    今天呕心沥血花了8个小时给大家带来kettle工作中最常见的四种复杂实例,90%的项目用到这4种实例都可以解决. 4种实例种还有2种通用kettle工具,使用这两种通用工具实例,可以直接修改相应的配置 ...

  2. Android3_了解Gradle工具

    一.Gradle Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具.它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,目前也增加了基于K ...

  3. HBase 分裂(split)

    1. 为什么split 最初一个Table 只有一个region(因此只能存放在一个region server上).随着数据的不断写入,HRegion越来越大,当到达一定程度后分裂为两个,通过负载均衡 ...

  4. Spring注解之@Autowired、@Qualifier、@Resource、@Value

    前言 @Autowired.@Qualifier.@Resource.@Value四个注解都是用于注入数据的,他们的作用就和在xml配置文件中的bean标签中写一个标签的作用是一样的!本篇中特别要讲解 ...

  5. 利用docker容器运行.net core webapi

    利用docker容器运行.net core webapi :first-child { margin-top: 0 !important; } > :last-child { margin-bo ...

  6. eclipse中部署web项目时报错java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener的解决方法

    解决方案: 1.右键点击项目--选择Properties,选择Deployment Assembly,在右边点击Add按钮,在弹出的窗口中选择Java Build Path Entries 2.点击N ...

  7. jeecg中自定义按钮时遇到的问题

  8. nginx实现缓存功能

    Nginx从0.7.48版本开始,支持了类似Squid的缓存功能.这个缓存是把URL及相关组合当作Key,用md5编码哈希后保存在硬盘上,所以它可以支持任意URL链接,同时也支持404/301/302 ...

  9. 电信NBIOT平台的CA证书上传-消息订阅回调地址检测503错误

    在NBIOT北向开发过程中,遇到消息订阅回调地址检测503错误,经过论坛查询与文档查阅一直都没有解决问题,大多人都说是RESTful地址格式问题,但其实不是.最终发现是我们在电信平台创建应用时,上传C ...

  10. nginx错误: [error] OpenEvent("Global\ngx_reload_10444") failed (2: The system cannot find the file specified)

    执行nginx -s reload命令: nginx: [error] OpenEvent("Global\ngx_reload_10444") failed (2: The sy ...