Mybatis学习之开篇之作(helloworld级别)

MyBatis 教程

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC
代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的
POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

接口方式实现数据查询操作

一、准备工作

  1. jar包
    log4j.jar(日志包)
    mybatis-3.4.1.jar
    mysql-connector-java-5.1.37-bin.jar
  2. 配置环境
    引入日志包配置文件
    log4j.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
 <!-- 日志文件配置 -->
 <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
   <param name="Encoding" value="UTF-8" />
   <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n" />
   </layout>
 </appender>
 <logger name="java.sql">
   <level value="debug" />
 </logger>
 <logger name="org.apache.ibatis">
   <level value="info" />
 </logger>
 <root>
   <level value="debug" />
   <appender-ref ref="STDOUT" />
 </root>
</log4j:configuration>

mybatis.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>
	<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/test" />
				<property name="username" value="root" />
				<property name="password" value="123456" />
			</dataSource>
		</environment>
	</environments>
	<!-- 将我们写好的sql映射文件(EmployeeMapper.xml)一定要注册到全局配置文件(mybatis-config.xml)中 -->
	<mappers>
		<mapper resource="StudentMapper.xml" />
	</mappers>
</configuration>

StudentMapper.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.qst.mybatis.dao.StudentMapper">

<!-- 
namespace:名称空间;指定为接口的全类名
id:唯一标识
resultType:返回值类型
#{id}:从传递过来的参数中取出id值

public Employee getEmpById(Integer id);
 -->
	<select id="getObjById" resultType="com.qst.mybatis.bean.Student">
		select id,name from user where id = #{id}
	</select>
	
</mapper>

二、相关的实体类
这里我们以Student为例

public class Student {
    
    

	private Integer id;
	private String name;
	public Integer getId() {
    
    
		return id;
	}
	public void setId(Integer id) {
    
    
		this.id = id;
	}
	public String getName() {
    
    
		return name;
	}
	public void setName(String name) {
    
    
		this.name = name;
	}
	@Override
	public String toString() {
    
    
		return "Student [id=" + id + ", name=" + name + "]";
	}
	
}

StudentMapper.java(映射接口,对应配置文件的方法接口)

import com.qst.mybatis.bean.Student;

public interface  StudentMapper {
    
    
	
	public Student getObjById(Integer id);
}

Client
获取连接步骤:
1、根据xml配置文件(全局配置文件)创建一个SqlSessionFactory对象 有数据源一些运行环境信息
2、sql映射文件;配置了每一个sql,以及sql的封装规则等。
3、将sql映射文件注册在全局配置文件中


	public SqlSessionFactory getSqlSessionFactory() throws IOException {
    
    
		String resource = "mybatis.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		return new SqlSessionFactoryBuilder().build(inputStream);
	}

public void Test() throws IOException {
    
    
		// 1、获取sqlSessionFactory对象
		SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
		// 2、获取sqlSession对象
		SqlSession openSession = sqlSessionFactory.openSession();
		
			// 3、获取接口的实现类对象
			//会为接口自动的创建一个代理对象,代理对象去执行增删改查方法
			try {
    
    
				StudentMapper mapper = openSession.getMapper(StudentMapper.class);
				Student stu = mapper.getObjById();
			
				System.out.println(stu);
			} catch (Exception e) {
    
    
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			finally {
    
    
				openSession.close();
			}
		
	}

三、结果集
数据库信息
在这里插入图片描述
运行结果
在这里插入图片描述

结语:(送给每一个在努力前行的人)

以梦为马,不负韶华
流年笑掷,未来可期

猜你喜欢

转载自blog.csdn.net/weixin_44763595/article/details/108297916