Mybatis快速入门之Hello World

MyBatis简介

MyBatis 是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架。

MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录.

MyBatis是一个半自动化的持久化层框架。

Mybatis优势

JDBC

1 SQL夹在Java代码块里,耦合度高导致硬编码内伤。

2维护不易且实际开发需求中sql是有变化,频繁修改的情况多见。

Hibernate和JPA

1 长难复杂SQL,对于Hibernate而言处理也不容易。

2内部自动生产的SQL,不容易做特殊优化。

3基于全映射的全自动框架,大量字段的POJO进行部分映射时比较困难。导致数据库性能下降。

Mybatis

sql和java编码分开,功能边界清晰,一个专注业务、一个专注数据。

 

因为很多情况下,sql还是需要自己优化,对耦合度和灵活性要求的情况下,mybatis正好是我们非常好的选择。

 

Mybatis HelloWord

1 创建MyBatis全局配置文件

MyBatis 的全局配置文件包含了影响MyBatis 行为的设置(settings)和属性(properties)信息、如数据库连接池信息等。指导着MyBatis进行工作。

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" />

<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="123456" />

</dataSource>

</environment>

</environments>

<!-- 将我们写好的sql映射文件(EmployeeMapper.xml)一定要注册到全局配置文件(mybatis-config.xml)中 -->

<mappers>

<mapper resource="EmployeeMapper.xml" />

</mappers>

</configuration>

2 创建Java对应数据库数据Bean

public class Employee {

private Integer id;

private String lastName;

private String email;

private String gender;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getLastName() {

return lastName;

}

public void setLastName(String lastName) {

this.lastName = lastName;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

public String getGender() {

return gender;

}

public void setGender(String gender) {

this.gender = gender;

}

@Override

public String toString() {

return "Employee [id=" + id + ", lastName=" + lastName + ", email="

+ email + ", gender=" + gender + "]";

}

}

3 创建操作数据库的Mapper接口

public interface EmployeeMapper {

public Employee getEmpById(Integer id);


}

4 创建SQL映射文件

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

<!--

namespace:名称空间;指定为接口的全类名

id:唯一标识

resultType:返回值类型

#{id}:从传递过来的参数中取出id值



public Employee getEmpById(Integer id);

 -->

<select id="getEmpById" resultType="com.mybatis.bean.Employee">

select id,last_name lastName,email,gender from tbl_employee where id = #{id}

</select>

</mapper>

5、测试

方式一:

public void test1() throws IOException {

SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();



SqlSession openSession = sqlSessionFactory.openSession();

try {

Employee employee = openSession.selectOne( "com.mybatis.dao.EmployeeMapper.getEmpById", 1);

System.out.println(employee);

} finally {

openSession.close();

}

}

方式二:

public void test2() throws IOException {

// 1、获取sqlSessionFactory对象

SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();

// 2、获取sqlSession对象

SqlSession openSession = sqlSessionFactory.openSession();

try {

// 3、获取接口的实现类对象

//会为接口自动的创建一个代理对象,代理对象去执行增删改查方法

EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);

Employee employee = mapper.getEmpById(1);

System.out.println(mapper.getClass());

System.out.println(employee);

} finally {

openSession.close();

}



}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流光影下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值