一、框架:
半成品,可以理解为房子的大框,之后砌墙会在其基础上。
二、目录结构
image三、jar包下载
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<!-- <version>3.3.0</version> -->
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.36</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.mybatis.caches</groupId>
<artifactId>mybatis-ehcache</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>2.10.1</version>
</dependency>
四、在src中引入SqlMapConfig.xml文件
名字可随便取,但惯例都叫此,之后会有专门的地方根据名字读取文件,现在专门解释一下该文件,文件后缀名时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>
</configuration>
1、
<?xml version="1.0" encoding="UTF-8"?>
是必须有的头文件
2、
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
是处理指令,能够解析MyBatis元素
3、根元素
<configuration></configuration>
一个配置文件只能有一个根元素
4、在<configuration></configuration>中配置数据源,所谓数据源就是数据的来源,可以理解为数据库
<configuration>
<environments default="mysql">
<environment id="mysql">
<!-- 事务管理器 -->
<transactionManager type="jdbc"></transactionManager>
<!-- 配置数据源 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/scott" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
</configuration>
a.default中的值决定具体使用哪一数据源,所谓数据源就是数据的来源,即数据库
b.在指定的数据源中,首先配置事务控制器
c.配置数据源的相关信息,POOLED表示使用连接池进行连接
d.property中的name都有特定的含义,不允许改变
五、建表语句
CREATE TABLE `NewTable` (
`id` int(11) NULL DEFAULT NULL ,
`username` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`hiredate` date NULL DEFAULT NULL ,
`password` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
ROW_FORMAT=COMPACT
;
六、创建实体类
public class User {
private int id;
private String username;
private String password;
private Date hiredate;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getHiredate() {
return hiredate;
}
public void setHiredate(Date hiredate) {
this.hiredate = hiredate;
}
}
七、创建接口UserMapper
public interface UserMapper {
User getUser(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命名空间,作用就是对sql进行分类化管理-->
<mapper namespace="com.neusoft.dao.UserMapper">
<select id="getUser" parameterType="java.lang.Integer" resultType="com.neusoft.bean.User">
select * from t_user where id = #{value}
</select>
</mapper>
1、mapper是根元素
2、<mapper namespace="com.neusoft.dao.UserMapper">的namespace值必须写接口的全限定名,
3、根元素中可以编写sql语句
4、parameterType:指定输入参数类型,mybatis 从输入对象中获取参数值拼接在 sql 中。
resultType:指定输出结果类型,mybatis 将 sql 查询结果的一行记录数据映射为 resultType 指定类型的对象。
上述参数值需要引入全限定名
有的童鞋可能猜到了,你可以认为这个配置文件类似于接口的实现类,只不过我们不用implements关键字,而是在主配置文件中读取它
<mappers>
<!-- <mapper resource="com/dao/UserMapper.xml"/> -->
<package name="com.neusoft.dao"/>
</mappers>
九、最后,我们编写测试类,主要经过如下步骤
1、加载核心配置文件
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
2、获取数据库连接池对象
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
3、获取与数据库的链接
SqlSession session = factory.openSession();
4、通过连接拿到实体类对象
UserMapper userMapper = session.getMapper(UserMapper.class);
5、根据id查询用户信息
User user = userMapper.getUser(1);
此时相关数据已经封装给了实体类
十、引入配置文件
在classpath下创建db.properties
jdbc.driver =com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/scott
jdbc.username=root
jdbc.password=root
此时在SqlMapConfig.xml文件中需要修改为
<!-- properties元素:
resource属性,要引入的消息资源文件相对于src的路径 -->
<properties resource="db.properties"></properties>
<environments default="oracle">
<environment id="oracle">
<!-- 事务管理器 -->
<transactionManager type="mysql"></transactionManager>
<!-- 配置数据源 -->
<dataSource type="POOLED">
<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>
网友评论