create database test(id int,name varchar(10),major varchar(20));
use mybatis;
create table test(id int,name varchar(10),major varchar(20));
insert into test values(1,‘Jack‘,‘Math‘);
insert into test values(2,‘Marck‘,‘English‘);
insert into test values(3,‘szx‘,‘弱鸡‘);
编辑pom.xml文件
<?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>org.example</groupId>
<artifactId>MyBatisTest</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<!--MyBatis框架依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.4</version>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
<!--日志相关-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
<!--测试类-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
完成后会自动下载依赖,如果没有则手动导入
//info.class
//自己导包(通常可以自动)
import java.io.Serializable;
public class info implements Serializable {
private static final long serialVersionUID = 1L;
//定义变量
private int id;
private String name;
private String major;
//alt+insert 生成方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
//ctrl+o重写toString方法
@Override
public String toString() {
return "id:"+id
+", name:"+name
+", major:"+major;
}
}
### log4j.properties ###
### 设置###
log4j.rootLogger = debug,stdout,D,E
### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
### 输出DEBUG 级别以上的日志到=E://logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = E://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 输出ERROR 级别以上的日志到=E://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =E://logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
<?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">
<!--环境id-->
<environment id="mysql">
<!--事务类型-->
<transactionManager type="JDBC"></transactionManager>
<!--数据源(连接池)-->
<dataSource type="POOLED">
<!--连接数据库的基本信息-->
<!--驱动-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/> <!--注意mysql版本(有无cj)-->
<!--url-->
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<!--数据库用户名-->
<property name="username" value="root"/>
<!--数据库密码-->
<property name="password" value="szx"/>
</dataSource>
</environment>
</environments>
<!--如果不使用注解的方法还要配置映射文件-->
<!--指定映射配置文件位置,映射配置文件指的是每个Dao独立的配置文件-->
<mappers>
<!--包名最好一一对应-->
<!--在resources文件夹中建包com.szx.dao 包下建文件IinfoDao.xml -->
<mapper resource="com/szx/dao/IinfoDao.xml"/>
</mappers>
</configuration>
<!-- IinfoDao.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.szx.dao.IinfoDao">
<!--配置查询所有-->
<!--Dao的方法名称-->
<select id="findAll" resultType="com.szx.domain.info">
<!--id必须和方法名对应,resultType指定结果存放在哪个类-->
<!--里面写sql语句-->
select * from user;
</select>
</mapper>
到这一步所有的配置都已经完成,接着写测试类运行
//test.java
package com.szx.test;
import com.szx.dao.IinfoDao;
import com.szx.domain.info;
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;
import java.util.List;
public class Test {
public static void main(String[] args) throws IOException {
//1.读取配置文件
InputStream in = Resources.getResourceAsStream("SMConfig.xml");
//2.创建SqlSessionFactory工厂对象
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(in);
//3.用工厂生产新的SqlSession对象
SqlSession session = factory.openSession();
//4.使用SqlSession创建Dao接口的代理对象
IinfoDao infoDao = session.getMapper(IinfoDao.class);
//5.使用代理对象执行方法
List<info> infos = infoDao.findAll();
for (info inf:infos) {
System.out.println(inf);
}
//6.释放资源
session.close();
in.close();
}
}
原文:https://www.cnblogs.com/xun-/p/12853582.html