初探MyBatis

来源:互联网 发布:重庆惠普程序员工资 编辑:程序博客网 时间:2024/05/23 19:14

〇、什么是MyBatis?

MyBatis是一个持久化层框架,和Spring MVC + Spring Boot + MyBatis一起构成Java Web开发目前最流行的三件套。它支持定制化SQL、存储过程以及高级映射,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

一、快速使用

1.在Spring Boot maven项目的pom.xml将其依赖引入。

2.在application.properties配置文件中添加如下代码,进行数据源url、username、password和相关文件的配置。

spring.datasource.url=jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=utf8&useSSL=falsespring.datasource.username=usernamespring.datasource.password=passwordmybatis.config-location=classpath:mybatis-config.xml
3.在application.properties同目录下建立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"><configuration>    <settings>        <!-- Globally enables or disables any caches configured in any mapper under this configuration -->        <setting name="cacheEnabled" value="true"/>        <!-- Sets the number of seconds the driver will wait for a response from the database -->        <setting name="defaultStatementTimeout" value="3000"/>        <!-- Enables automatic mapping from classic database column names A_COLUMN to camel case classic Java property names aColumn -->        <setting name="mapUnderscoreToCamelCase" value="true"/>        <!-- Allows JDBC support for generated keys. A compatible driver is required.        This setting forces generated keys to be used if set to true,         as some drivers deny compatibility but still work -->        <setting name="useGeneratedKeys" value="true"/>    </settings>    <!-- Continue going here --></configuration>

4.建立相关模型实体类,比如User.class,里面包含属性的设置和提取等

package com.nowcoder.toutiao.model;public class User {    private int id;    private String name;    private String password;    private String salt;    private String headUrl;    public User() {    }    public User(String name) {        this.name = name;        this.password = "";        this.salt = "";        this.headUrl = "";    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public String getSalt() {        return salt;    }    public void setSalt(String salt) {        this.salt = salt;    }    public String getHeadUrl() {        return headUrl;    }    public void setHeadUrl(String headUrl) {        this.headUrl = headUrl;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }}
5.编写对该实体类的数据访问DAO,之后便可以通过该DAO实现对数据库的操作

package com.nowcoder.toutiao.dao;import com.nowcoder.toutiao.model.User;import org.apache.ibatis.annotations.*;import org.springframework.stereotype.Repository;@Mapper@Repositorypublic interface UserDAO {    String TABLE_NAME = "user";    String INSET_FIELDS = " name, password, salt, head_url ";    String SELECT_FIELDS = " id, name, password, salt, head_url";    @Insert({"insert into ", TABLE_NAME, "(", INSET_FIELDS,            ") values (#{name},#{password},#{salt},#{headUrl})"})    int addUser(User user);    @Select({"select ", SELECT_FIELDS, " from ", TABLE_NAME, " where id=#{id}"})    User selectById(int id);    @Select({"select ", SELECT_FIELDS, " from ", TABLE_NAME, " where name=#{name}"})    User selectByName(String name);    @Update({"update ", TABLE_NAME, " set password=#{password} where id=#{id}"})    void updatePassword(User user);    @Delete({"delete from ", TABLE_NAME, " where id=#{id}"})    void deleteById(int id);}




参考文献:

http://www.mybatis.org/mybatis-3/zh/index.html