mybatis快速入门

之前对spring,mybatis有些了解,但是不清楚其中逻辑,尤其是底层逻辑的实现,现在公司很多都是springmvc的项目,就趁现在把这些框架都熟练一下,这篇文章是个开始。。。

一 原生态JDBC程序问题总结

1. 数据库连接,使用时连接,不使用时释放,频繁对数据库开启和关闭,浪费资源,影响数据库性能(连接池管理连接);
2. SQL硬编码到java代码,修改SQL时需重新编译java代码,不利于系统维护(SQL配置到XML文件);
3. prepareStatement设置占位符和参数值存在硬编码(配置到XML文件);
4. 遍历结果集时,根据数据库字段取值存在硬编码(映射到java对象);

二 对mybatis框架介绍

1. mybatis是Apache下的开源框架;程序员可以把精力集中在SQL上,通过mybatis提供的映射机制,能自由灵活的开发满足需要的SQL;通过mybatis的输入输出映射可以灵活配置prepareStatement的参数值和结果集;
2. 框架图解


三 mybatis开发案例

1. 需求描述
根据ID对用户表进行查询
2. 开发流程
1.1 新建工程并导入mybatis核心包及其依赖包,MySQL驱动包,可导入Junit测试包;
1.2 在classPath目录下新建log4j.properties文件
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# MyBatis logging configuration...
#log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

1.3 在classPath目录新建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>
	<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/mybatis"/>
				<property name="username" value="root"/>
				<property name="password" value="m1234"/>
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="user.xml"/>
	</mappers>
</configuration>


1.4 配置SQL、输入输出映射文件user.xml
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="test">
	<!-- parameterType为java简单类型时,#{id}中的id可以是任意字符 -->
	<select id="findUserById" parameterType="int" resultType="com.mybatis.po.User">
		select * from user where id = #{id}
	</select>
</mapper>

说明:parameterType-输入参数类型;resultType-结果集映射类型(此处表示将查询结果集映射到User对象)

1.5 创建User类
private int id;
private String username;
private Date birthday;
private String sex;
private String address;

1.6 关联SQLMapConfig.xml 和 user.xml文件,在sqlMapConfig.xml文件中加入以下代码
<mappers>
	<mapper resource="user.xml"/>
</mappers>

1.7 创建测试类
// 获取配置文件流
	InputStream inputStream = Resources.getResourceAsStream("sqlMapConfig.xml");
		
	// 创建会话工厂
	SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(inputStream);
		
	// 创建会话
	SqlSession ss = ssf.openSession();
		
	// 操作数据库
	User user = ss.selectOne("test.findUserById", 1);
		
	System.out.println(user);



说明:按照前面的框架图解部分的流程开发即可,运行测试类,即可查询出需要的数据















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值