文章目录 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 configuration PUBLIC "-//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; } @Override public 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 ) ; } @Test public 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 ( "成功" ) ; } @Test public 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>