内容简介:demo:xml:mybatis-config.xml:
Mybatis快速入门
步骤:
- 1.加入mybatis的依赖
- 2.添加Mybatis的配置文件
- 3.场景介绍
- 4.编写实体类丶mapper接口及mapper.xml文件
- 5.编写测试代码
demo:
public class TUser {
private Integer id;
private String userName;
private String realName;
private Byte sex;
private String mobile;
private String email;
private String note;
private Integer positionId;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
public Byte getSex() {
return sex;
}
public void setSex(Byte sex) {
this.sex = sex;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
public Integer getPositionId() {
return positionId;
}
public void setPositionId(Integer positionId) {
this.positionId = positionId;
}
}
public interface TUserMapper {
TUser selectByPrimaryKey(Integer id);
}
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.enjoylearning.mybatis.mapper.TUserMapper">
<select id="selectByPrimaryKey" resultType="com.enjoylearning.mybatis.entity.TUser" parameterType="java.lang.Integer">
select
id,
user_name ,
real_name ,
sex,
mobile,
email,
note,
position_id positionId
from t_user
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>
<properties resource="db.properties" />
<settings>
<!-- 全局开关-->
<!-- 设置自动驼峰转换-->
<setting name="mapUnderscoreToCamelCase" value="true" />
<!-- 开启懒加载-->
<setting name="lazyLoadingEnabled" value="false"/>
</settings>
<!--别名定义 -->
<typeAliases>
<package name="com.enjoylearning.mybatis.entity"/>
</typeAliases>
<!--配置environment环境 -->
<environments default="development">
<!-- 环境配置1,每个SqlSessionFactory对应一个环境 -->
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="UNPOOLED">
<property name="driver" value="${jdbc_driver}" />
<property name="url" value="${jdbc_url}" />
<property name="username" value="${jdbc_username}" />
<property name="password" value="${jdbc_password}" />
</dataSource>
</environment>
</environments>
<!-- 映射文件,mapper的配置文件 -->
<!-- <mappers>
直接映射到相应的mapper文件
<mapper resource="sqlmapper/TUserMapper.xml" />
</mappers> -->
<mappers>
<mapper class="com.enjoylearning.mybatis.mapper.TUserMapper" />
</mappers>
</configuration>
db.properties:
jdbc_driver=com.mysql.jdbc.Driver
jdbc_url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
jdbc_username=root
jdbc_password=qq997921
测试类:
public class MybatisQuickStart {
private SqlSessionFactory sqlSessionFactory;
@Test
// 快速入门
public void quickStart() throws IOException {
//-------------第一阶段-------------
// 1.读取mybatis配置文件创SqlSessionFactory
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
inputStream.close();
//-------------第二阶段-------------
// 2.获取sqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
// 3.获取对应mapper
TUserMapper mapper = sqlSession.getMapper(TUserMapper.class);
//-------------第三阶段-------------
// 4.执行查询语句并返回结果
TUser user = mapper.selectByPrimaryKey(1);
System.out.println(user.toString());
}
}
Mybatis两种编程模型
1.封装了iBatis编程模型,使用sqlSession对外提供数据库的访问
比如使用sqlSession直接访问数据库,代码如:
User user1 = session.selectOne("com.XX.XX.XXMapper.selectOneByKey","1");
2.使用mapper接口编程,就可以访问数据库
UserMapper userMapper = session.getMapper(UserMapper.class); User user = userMapper.selectByPrimaryKey(1);
对比两种模型
第一种缺点:代码里面会很多硬编码,硬编码不好维护,代码不优雅,并且selectOne方法名称没有业务含义.
优先选择mapper接口编程。
Mybatis核心流程三大阶段
缕清思路也就是Mybatis核心流程之后,我们就开始写代码了,详见下节~~
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 解密Mybatis,手写Mybatis框架(二)
- APICloud解密本地资源到逆向APP算法到通用资源解密
- 手写一个解析器
- 手写一个webpack插件
- 从头手写一个Promise
- 前端面试之手写代码
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
垃圾回收的算法与实现
中村成洋、相川光 / 丁灵 / 人民邮电出版社 / 2016-7-1 / 99.00元
★ Ruby之父Matz作推荐语:上古传承的魔法,彻底揭开垃圾回收的秘密! ★ 日本天才程序员兼Lisp黑客竹内郁雄审校 本书前半介绍基本GC算法,包括标记-清除GC、引用计数、复制算法的GC、串行GC的算法、并发GC的算法等。后半介绍V8、Rubinius、Dalvik、CPython等几种具体GC的实现。本书适合各领域程序员阅读。一起来看看 《垃圾回收的算法与实现》 这本书的介绍吧!