【第二章:Java核心技术解析】第15节:Java框架 - MyBatis必会知识点
大家好,很高兴我们可以继续交流学习Java相关框架知识点。在上一小节中,我们对当前热门的Spring框架进行了简单的介绍,重点阐述了其AOP和IOC两种关键技术。
本小节中,我们主要对当前热门的持久层框架MyBatis来进行介绍。MyBatis是一个优秀的持久层框架,基本上已经取代了Hibernate成为了当前市场上的主流持久层框架。在日常的工作中,我们经常在使用Spring和MyBatis来搭建我们的服务。所以,熟练的使用并且掌握框架的相关技术原理对于我们开发效率也是很有帮助的。接下来,我们先来看一个MyBatis框架的使用案例吧.
Demo展示:使用MyBatis+Druid连接MySQL数据库
数据库中表的建立, 建立一张测试表mybatis_test,语句如下:
create table mybatis_test( id int primary key, k int not null, name varchar(16), index (k))engine=InnoDB;
插入一条记录,语句如下:
insert into mybatis_test values(1,1,'zhangsan');
建立完整的项目,结构如下所示:
接下来,我们分别给出各个文件的内容:
User实体类:
package com.model;
public class User {
private int id;
private int k;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getK() {
return k;
}
public void setK(int k) {
this.k = k;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", k=" + k +
", name='" + name + '\'' +
'}';
}
}
自定义的Druid数据库连接池MyDruidDataSourceFactory :
package com.factory;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import org.apache.ibatis.datasource.DataSourceFactory;
import javax.sql.DataSource;
import java.util.Properties;
public class MyDruidDataSourceFactory implements DataSourceFactory {
private DataSource dataSource;
public DataSource getDataSource() {
return this.dataSource;
}
public void setProperties(final Properties props) {
try {
this.dataSource = DruidDataSourceFactory.createDataSource(props);
} catch (final RuntimeException e) {
throw e;
} catch (final Exception e) {
throw new RuntimeException("init datasource error", e);
}
}
}
映射器的定义:
package com.mapper;
import com.model.User;
public interface UserMapper {
public User getUserInfo(int id);
}
UserMapper.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">
<!-- namespace 与对应接口的全路径严格对应-->
<mapper namespace="com.mapper.UserMapper">
<select id="getUserInfo" parameterType="int" resultType="User">
select * from mybatis_test where id=#{id}
</select>
</mapper>
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>
<!--定义别名-->
<typeAliases>
<typeAlias type="com.model.User" alias="User" />
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="com.factory.MyDruidDataSourceFactory">
<property name="driver" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="root" />
<property name="password" value="123" />
<property name="maxActive" value="30" /> <!--接下来是Druid连接池的属性配置-->
<property name="initialSize" value="30" />
<property name="minIdle" value="30" />
<property name="testWhileIdle" value="false" />
</dataSource>
</environment>
</environments>
<!--引入定义好的UserMapper文件-->
<mappers>
<mapper resource="UserMapper.xml" />
</mappers>
</configuration>
依赖配置pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ywq</groupId>
<artifactId>mybatis.test</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!--MyBatis依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifa
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
Java开发岗高频面试题全解析 文章被收录于专栏
<p> Java开发岗高频面试题全解析,专刊正文共计31节,已经全部更新完毕。专刊分9个模块来对Java岗位面试中的知识点进行解析,包括通用面试技能,Java基础,Java进阶,网络协议,常见框架以及算法,设计模式等。专刊串点成面的解析每个面试题背后的技术原理,由浅入深,循序渐进,力争让大家掌握面试题目的背后的技术原理,摒弃背题模式的陋习。 专刊详细信息,请查阅专刊大纲和开篇词的介绍。 本专刊购买后即可解锁所有章节,故不可以退换哦~ </p> <p> <br /> </p>
