学习目标:入门SSM框架进阶
第一个Mybatis程序
学习内容:Mybatis入门
环境
1、 IDEA
2、 Maven
3、MySQL5.7
4、 Mybatis
学习产出:
目录结构:
1.idea创建简单maven工程创建
2.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>alphatest</artifactId>
<version>1.0-SNAPSHOT</version>
<!--导入依赖-->
<dependencies>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<!-- mybatis驱动-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<!-- junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
3.编写MyBatis核心配置文件
<?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="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/alpha?useSSL=true&useUnicode=true&characterEncoding=utf8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--#####注意resource改为mapper xml文件位置-->
<mappers>
<mapper resource="com/kuang/dao/userMapper.xml"/>
</mappers>
</configuration>
4.编写mybatis工具类
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 {
// 获取SqlssionFactory
private static SqlSessionFactory sqlSessionFactory;
static {
try {
String resource = "mybatisConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
//获取SqlSession连接
public static SqlSession getSession(){
return sqlSessionFactory.openSession();
}
}
5.创建实体类
package cn.alpha.pojo;
//实体类
public class User {
private int uid;
private String unmae,upwd;
@Override
public String toString() {
return "User{" +
"uid=" + uid +
", unmae='" + unmae + '\'' +
", upwd='" + upwd + '\'' +
'}';
}
public User() {
}
public User(int uid, String unmae, String upwd) {
this.uid = uid;
this.unmae = unmae;
this.upwd = upwd;
}
public void setUid(int uid) {
this.uid = uid;
}
public void setUnmae(String unmae) {
this.unmae = unmae;
}
public void setUpwd(String upwd) {
this.upwd = upwd;
}
public int getUid() {
return uid;
}
public String getUnmae() {
return unmae;
}
public String getUpwd() {
return upwd;
}
}
6.创建mapper接口;
import java.util.List;
//mapper接口
public interface UserDao {
List<User>getUserList();
}
7.编写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定位mapper接口-->
<mapper namespace="cn.alpha.dao.UserDao">
<!-- 查询语句-->
<!-- 一个名为 “select” 的映射语句,-->
<select id="select" >
select * from alpha.user ;
</select>
</mapper>
8.测试Test
import cn.alpha.dao.UserDao;
import cn.alpha.pojo.User;
import cn.alpha.utils.mybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
public class UserTest {
@Test
public void test(){
// 获取sqlssion对象
SqlSession sqlSession= mybatisUtils.getSession();
// 方法一: getmapper
UserDao userDao=sqlSession.getMapper(UserDao.class);
List<User> userList= userDao.getUserList();
//输出结果
for (User user:userList){
System.out.println(user);
}
sqlSession.close();
}
}
****遇见问题,maven 资源导出问题;
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>