文章目录
- 1.注解方式操作
- 文件目录
- 1.快速入门(完整步骤)
- 1.pom.xml(完整)
- 2.resources/jdbc.properties外部配置文件(根据实际情况修改参数)
- 3.在resources/mybatis-config.xml(完整)中配置含有注解的接口
- 4.映射类Monster.java
- 5.编写MonsterAnnotation.java接口
- 6.MyBatisUtils.java
- 7.测试
- 2.注意事项和细节
- 1.复制sql语句
- 2.使用注解方式也要在配置文件中引入这个类!
- 3.返回自增值(update和insert适用)
- 4.配置SQL提示
- 2.MyBatis配置文件详解
- 1.外部属性文件设置相关的值
- 1.resources/jdbc.properties
- 2.修改mybatis-config.xml引入外部文件
- 2.settings配置日志
- 3.typeAliases配置类型别名
- 4.environments注册XXXMapper.xml或者含有注解的类
- 5.pom.xml配置在build的时候要扫描的文件
1.注解方式操作
文件目录
1.快速入门(完整步骤)
1.pom.xml(完整)
<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/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>mybatis</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><name>Archetype - mybatis</name><url>http://maven.apache.org</url><modules><module>mybatis_quickstart</module></modules><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.49</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.7</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency></dependencies><build><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource><resource><directory>src/main/resources</directory><includes><include>**/*.xml</include><include>**/*.properties</include></includes></resource></resources></build>
</project>
2.resources/jdbc.properties外部配置文件(根据实际情况修改参数)
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=root
3.在resources/mybatis-config.xml(完整)中配置含有注解的接口
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><properties resource="jdbc.properties"/><settings><setting name="logImpl" value="STDOUT_LOGGING"/></settings><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments><mappers><package name="com.sun.mapper"/></mappers></configuration>
4.映射类Monster.java
package com.sun.entity;import java.util.Date;
public class Monster {private Integer id;private Integer age;private Date birthday;private String email;private Integer gender;private String name;private Double salary;public Monster() {}public Monster(Integer id, Integer age, Date birthday, String email, Integer gender, String name, Double salary) {this.id = id;this.age = age;this.birthday = birthday;this.email = email;this.gender = gender;this.name = name;this.salary = salary;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public Integer getGender() {return gender;}public void setGender(Integer gender) {this.gender = gender;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Double getSalary() {return salary;}public void setSalary(Double salary) {this.salary = salary;}@Overridepublic String toString() {return "Monster{" +"id=" + id +", age=" + age +", birthday=" + birthday +", email='" + email + '\'' +", gender=" + gender +", name='" + name + '\'' +", salary=" + salary +'}';}
}
5.编写MonsterAnnotation.java接口
package com.sun.mapper;import com.sun.entity.Monster;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;import java.util.List;
public interface MonsterAnnotation {@Insert("INSERT INTO `monster`(`id`,`age`,`birthday`,`email`,`gender`,`name`,`salaary`) " +"VALUES(NULL, #{age}, #{birthday}, #{email}, #{gender}, #{name}, #{salary})")public void addMonster(Monster monster);@Delete("DELETE FROM `monster` where id = #{id}")public void delMonster(Integer id);@Update("UPDATE `monster` SET " +"`age` = #{age}, `birthday` = #{birthday}, " +"`email` = #{email}, `name` = #{name}, `salary` = #{salary} " +"WHERE `id` = #{id}")public void updateMonster(Monster monster);@Select("SELECT * FROM `monster` WHERE id = #{id}")public Monster getMonsterById(Integer id);@Select("SELECT * FROM `monster`")public List<Monster> findAllMonster();}
6.MyBatisUtils.java
package com.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;
public class MyBatisUtils {private static SqlSessionFactory sqlSessionFactory;static {try {String resource = "mybatis-config.xml";InputStream resourceAsStream = Resources.getResourceAsStream(resource);sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);} catch (IOException e) {throw new RuntimeException(e);}}public static SqlSession getSqlSession() {return sqlSessionFactory.openSession();}
}
7.测试
import com.sun.entity.Monster;
import com.sun.mapper.MonsterAnnotation;
import com.sun.mapper.MonsterMapper;
import com.util.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Before;
import org.junit.Test;import java.util.Date;
import java.util.List;
public class MonsterAnnotationTest {private SqlSession sqlSession; private MonsterAnnotation monsterAnnotation;@Before public void init() {sqlSession = MyBatisUtils.getSqlSession();monsterAnnotation = sqlSession.getMapper(MonsterAnnotation.class);}@Testpublic void addMonster() {for (int i = 0; i < 2; i++) {Monster monster = new Monster(null, 10 + i, new Date(), "sun@qq.com", 0, "孙显圣", 10.0 + i);monsterAnnotation.addMonster(monster);}if (sqlSession != null) {sqlSession.commit();sqlSession.close();}System.out.println("成功");}@Testpublic void find() {List<Monster> allMonster = monsterAnnotation.findAllMonster();for (Monster monster : allMonster) {System.out.println(monster);}if (sqlSession != null) {sqlSession.close();}}}
2.注意事项和细节
1.复制sql语句
- 如果有/n则将这个/n去掉然后替换成空格
- 如果一行的前面有很多空格,就将这些空格都去掉
2.使用注解方式也要在配置文件中引入这个类!
3.返回自增值(update和insert适用)
4.配置SQL提示
2.MyBatis配置文件详解
1.外部属性文件设置相关的值
1.resources/jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=root
2.修改mybatis-config.xml引入外部文件
2.settings配置日志
3.typeAliases配置类型别名
4.environments注册XXXMapper.xml或者含有注解的类
5.pom.xml配置在build的时候要扫描的文件
<build><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource><resource><directory>src/main/resources</directory><includes><include>**/*.xml</include><include>**/*.properties</include></includes></resource></resources></build>