一、(创建数据库)创建maven工程,导入坐标(加依赖):
1.新建项目
—idea新建maven项目;
—create可不选择直接next;
—GroupId 公司名反写: com.wen;
2.加依赖pom.xml
—mybatis、mysql必加,其余用到什么jar包加什么;
<?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.wen</groupId>
<artifactId>mybatistest0801</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar<!--或者war--></packaging>
<!--
老师写英雄联盟时多加的内容备用(先不看)
<name>lol_mybatis Maven Webapp</name>
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
-->
<dependencies>
<!-- mybatis(必须)-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!-- mysql (必须)-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<!-- log4j 日志(非必须)-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- junit 单元测试(非必须)-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- 以及任何要用到的jar包,如fast json,jstl等-->
</dependencies>
</project>
二、创建 实体类 和 Dao的接口:
1.创建实体类
—根据 数据库 创建对应的实体类;
—目录结构:src–>main–>java–>com–>wen–>bean —>> User.java
(对应数据库的表名和字段名,写私有属性以及生成Get\Set方法和ToString方法,并且User Implements Serializable实现序列化,网络传输需要用);
2.创建Dao接口
—与bean同级新建dao包;
—目录结构:src–>main–>java–>com–>wen–>dao —>> IUserDao.java
package com.wen.dao;
import com.wen.bean.User;
import java.util.List;
/**
* 用户持久层接口
*/
public interface IUserDao {
/**
* 查询所有的操作,写方法
*/
List<User> findAll();
}
三、创建mybatis主配置文件sqlMapConfig.xml(名字随便取):
<?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>
<!--mybatis主配置文件(老师写的有,可以没有)
<properties resource="db.properties"></properties>如果用此,下面的为value="${mysql.driver}"
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"></setting>
</settings>
-->
<!--配置环境-->
<environments default="development">
<!--配置mysql环境id与default一致-->
<environment id="development">
<!--使用的事务类型-->
<transactionManager type="JDBC"></transactionManager>
<!--配置数据源(连接池) 配置四个连接数据库的基本信息-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/wen"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
<!--指定映射配置文件的位置:每个dao独立的配置文件-->
<mappers>
<mapper resource="com/wen/dao/IUserDao.xml"/>
</mappers>
</configuration>
四、创建映射配置文件(三 中最后mapper,一个.xml对应一个dao):
—目录结构(必须与dao包结构相同):resources->com->wen->dao->IUserDao.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.wen.dao.IUserDao">
<!--配置所有查询 id名是dao接口中的方法名-->
<select id="findAll" resultType="com.wen.bean.User">
select * from user
</select>
</mapper>
附上最终目录结构 以及 相关可选零部件:
—resources中放log4j.properties &db.properties(本例没用直接写了)
log4j.properties 的内容:
log4j.rootLogger=DEBUG, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
db.properties 的内容:
dev.driver=com.mysql.jdbc.Driver
dev.url=jdbc:mysql://localhost:3306/test?useSSL=false
dev.username=root
dev.password=
测试:
—在test中建目录与测试类test->java->com->wen->MybatisTest.java
package com.wen;
import com.wen.bean.User;
import com.wen.dao.IUserDao;
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 MybatisTest {
/**
* 入门案例
*/
public static void main(String[] args) throws Exception{
//1.读取配置文件
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.创建SqlSessionFactory工厂
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(in);
//3.使用工厂生产SqlSession对象
SqlSession session = factory.openSession();
//4.使用SqlSession创建Dao接口的代理对象
IUserDao userDao = session.getMapper(IUserDao.class);
//5.使用代理对象执行方法
List<User> users = userDao.findAll();
for(User user:users){
System.out.println(user);
}
//6.释放资源
session.close();
in.close();
}
}