初识MyBatis

本博客主要介绍为什么需要mybatis以及通过简单的例子介绍如何使用mybtis。

为什么需要MyBatis?

为了和数据库连接交互,我们通常将sql语句 写在java代码中,但是这种方式不利于后期维护,MyBatis就可以将sql语句和java代码分离,方便后期因为需求变动而对sql语句进行修改。

下面通过简单的例子进行实现:

一、创建MyMyBatis工程,导入jar包。

二、建立IUserInfoDao接口并创建getUserName抽象方法。

package online.shenran.userinfo;

public interface IUserInfoDao {

	String getUserName(String id);
}

三、配置user_info.xml和Mybatis_config.xml文件

user_info.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="online.shenran.userinfo.IUserInfoDao">

	<select id="getUserName" resultType="java.lang.String">
		select user_name from user_info where id=#{id}
	</select>
	
</mapper>

Mybatis_config.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"></transactionManager>
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver"></property> 
				<property name="url" value="jdbc:mysql://127.0.0.1:3306/test"></property> 
				<property name="username" value="root"></property> 
				<property name="password" value="root"></property> 
			</dataSource>
		</environment>
	</environments>

	<!-- 注册Mapperxml文件 -->
	<mappers>
		<mapper resource="user_info.xml"/>
	</mappers>

</configuration>

五、创建Test类。

package online.shenran.test;

import java.io.IOException;
import java.io.InputStream;

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 online.shenran.userinfo.IUserInfoDao;

public class Test {

	public static void main(String[] args) {
		try {
                        //字节输入流来读取Mybatis_config.xml文件
			InputStream inputStream= Resources.getResourceAsStream("Mybatis_config.xml");
			//建立一次数据库会话,此时在mapper中,已经出现了Iuserinfo的动态代理类。
			SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
			//在session中获得,获取IUserinfo的动态代理对象。
			SqlSession sqlSession =sqlSessionFactory.openSession();
			IUserInfoDao userInfoDao =sqlSession.getMapper(IUserInfoDao.class);
			//动态代理对象调用getUserName方法。
			String id = "7eb9deed-ec87-416e-abb3-1a5a2ce819de";
			String userName = userInfoDao.getUserName(id);
			System.out.println(userName);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

测试结果如下:

首先数据库中有两个信息:

通过id=“7eb9deed-ec87-416e-abb3-1a5a2ce819de”

查询结果如下:

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值