MyBatis 快速入门
1、建立数据库和表
create database mybatis
;
create table t_customer
(
id
int primary key auto_increment,
name
varchar(20),
gender
char(1),
telephone
varchar(20)
)engine=Innodb defualt
charset=utf
-8;
insert into t_customer
(name
,gender
,telephone
) values("小红","女","123123123");
insert into t_customer
(name
,gender
,telephone
) values("小明","男","456456456");
insert into t_customer
(name
,gender
,telephone
) values("小丽","女","789789789");
2、创建项目、导入依赖
2.1 IDEA 中创建 Java Maven 的项目
2.2 在 pom.xml 中导入 MyBatis 依赖
<?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>com.yiidian
</groupId>
<artifactId>ch01_01_mybatis_hello
</artifactId>
<version>1.0-SNAPSHOT
</version>
<dependencies>
<dependency>
<groupId>mysql
</groupId>
<artifactId>mysql-connector-java
</artifactId>
<version>5.1.46
</version>
</dependency>
<dependency>
<groupId>org.mybatis
</groupId>
<artifactId>mybatis
</artifactId>
<version>3.5.3
</version>
</dependency>
<dependency>
<groupId>log4j
</groupId>
<artifactId>log4j
</artifactId>
<version>1.2.17
</version>
</dependency>
<dependency>
<groupId>org.projectlombok
</groupId>
<artifactId>lombok
</artifactId>
<version>1.16.18
</version>
<scope>provided
</scope>
</dependency>
</dependencies>
</project>
3、编写 SqlMapConfig.xml 配置
在 resources 目录建立名称为:SqlMapConfig.xml 文件 这一步是连接数据库池和关联Dao映射文件的配置文件
<?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">
<environment id="mysql">
<transactionManager type="jdbc"></transactionManager>
<dataSource type="pooled">
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEcndoing=utf8"/>
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
</configuration>
4、编写 Customer 实体类
package com
.dh
.domain
;
import lombok
.AllArgsConstructor
;
import lombok
.Data
;
import lombok
.NoArgsConstructor
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Customer {
private Integer id
;
private String name
;
private String gender
;
private String telephone
;
}
@Data 自动生成get和set方法 @AllArgsConstructor 全参构造管理器 @NoArgsConstructor 无参构造管理器
5、编写 Dao 接口及映射文件
5.1、编写Dao接口
package com
.dh
.dao
;
import com
.dh
.domain
.Customer
;
import java
.util
.List
;
public interface CustomerDao {
public List
<Customer> findAll();
}
5.2、编写Dao映射文件
和Dao接口在同一目录下,建立同名的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">
<mapper namespace="com.dh.dao.CustomerDao">
<select id="findAll" resultType="com.dh.domain.Customer">
select * from t_customer
</select>
</mapper>
6、关联Dao映射文件
在之前的SqlMapConfig.xml关联Dao映射文件
具体内容如下:
<mappers>
<mapper resource="com/dh/dao/CustomerDao.xml"/>
</mappers>
7、编写测试类
package com
.dh
.mybatis
;
import com
.dh
.dao
.CustomerDao
;
import com
.dh
.domain
.Customer
;
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
.InputStream
;
import java
.util
.List
;
public class TestCustomerDao {
public static void main(String
[] args
) throws Exception
{
InputStream in
= Resources
.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactoryBuilder builder
= new SqlSessionFactoryBuilder();
SqlSessionFactory factory
= builder
.build(in
);
SqlSession sqlSession
= factory
.openSession();
CustomerDao userDao
= sqlSession
.getMapper(CustomerDao
.class);
List
<Customer> list
= userDao
.findAll();
for(Customer c
:list
){
System
.out
.println(c
);
}
sqlSession
.close();
in
.close();
}
}
8、配置log4j.properties
把log4j.properties 日志配置拷贝到 resources 目录下
内容如下:
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=c\:mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### set log levels - for more verbose logging change 'info' to 'debug' ###
log4j.rootLogger=debug, stdout
9、运行测试
运行测试类的main方法,执行结果如下: