简单的使用MyBatis

it2025-08-10  9

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> <!--mysql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46</version> </dependency> <!-- mybatis依赖--> <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> <!-- 1.数据库连接信息--> <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"> <!-- namespace:用于指定该映射文件需要映射Dao接口 --> <mapper namespace="com.dh.dao.CustomerDao"> <!-- id:需要映射的方法名 resultType:返回值需要封装的对象类型 --> <select id="findAll" resultType="com.dh.domain.Customer"> select * from t_customer </select> </mapper>

6、关联Dao映射文件

在之前的SqlMapConfig.xml关联Dao映射文件

具体内容如下:

<!-- 2.关联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 { //1.加载SqlMapConfig.xml InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml"); //2.创建SqlSessionFactory工厂 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); SqlSessionFactory factory = builder.build(in); //3.创建SqlSession SqlSession sqlSession = factory.openSession(); //4.生成Dao接口代理对象 CustomerDao userDao = sqlSession.getMapper(CustomerDao.class); //5.执行Dao接口方法 List<Customer> list = userDao.findAll(); for(Customer c:list){ System.out.println(c); } //6.释放资源 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方法,执行结果如下:

最新回复(0)