因为新项目需要myBatis,之前一直没有使用过,故现在才学习myBatis,暂时先不深入的探讨myBatis的原理机制,因工作需要就先学会怎么使用,处理常规的工作,其他就边工作边学习。项目使用的是maven搭建,maven也是自学,不够深入,项目仅供参考,如有不正确的地方,请指出:
说明:开发工具:eclipse、JDK1.7;数据库:mysql
1.项目文件结构
2.配置pom.xml文件
关键代码:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
</dependencies>
3.数据库连接文件jdbc.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
name=root
password=root
4.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>
<properties resource="jdbc.properties"/>
<typeAliases>
<!-- <typeAlias type="com.mybatis.test.entity.UserVo" alias="userVo"/> -->
<package name="com.mybatis.test.entity"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<!-- value属性值引用jdbc.properties配置文件中配置的值 -->
<property name="driver" value="${driverClassName}" />
<property name="url" value="${url}" />
<property name="username" value="${name}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="UserMapper.xml"/>
</mappers>
</configuration>
以下图片进行简单的说明(仅个人的简单理解)
数据库连接就不说明了,mapper是对应持久层接口(dao)的配置文件,我存放位置是resource下
5.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">
<mapper namespace="com.mybatis.test.dao.UserDao">
<select id="login" parameterType="String" resultType="userVo">
<!-- <select id="login" parameterType="String" resultMap="userMap"> -->
select * from tr_userinfo where name=#{name}
</select>
<resultMap type="userVo" id="userMap">
<!-- <id property="name" column="name"/> -->
<result property="roleId" column="role_id"/>
<!-- <result property="password" column="password"/> -->
</resultMap>
<select id="getUsers" parameterType="String" resultMap="userMap">
select * from tr_userinfo
</select>
</mapper>
注:namespace的地址是持久层接口的地址,一定要对应。
6.持久层接口
7.测试类
源码:
public static void main(String[] args) {
InputStream in;
try {
in = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
SqlSession session = sqlSessionFactory.openSession();
UserDao userDao = session.getMapper(UserDao.class);
UserVo user = userDao.login("liujun");
if(user != null){
System.out.println(user.getPassword());
System.out.println(user.getRoleId());
System.out.println(user.getName());
System.out.println(user.getEmail());
}
System.out.println("=====获取所有================");
List<UserVo> users = userDao.getUsers();
System.out.println(users.size());
if(users != null){
for(UserVo u :users){
System.out.println("名称:"+u.getName());
System.out.println("密码:"+u.getPassword());
System.out.println("角色:"+u.getRoleId());
System.out.println("邮件:"+u.getEmail());
}
}
session.close();
} catch (IOException e) {
e.printStackTrace();
}
}
注:记得关闭session哦,如果是insert、update、delete那么记得提交事务。
mybatis入门学习就到这来,初步是能够跑通
source地址:https://gitee.com/gulang1/myBatisRuMenZhiHello-WordXueXi.git