1. MyBatis 简介
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1. MyBatis 简介相关的知识,希望对你有一定的参考价值。
1. 传统 JDBC 编程
2. ORM 模型
Object Relational Model,对象映射模型:数据库的表和 POJO (Plain Ordinary Java Object) 的映射关系模型。
3. Hibernate
全表映射;不能组装 SQL;对多表关联和复杂 SQL 查询支持较差;性能较差。
4. MyBatis
半自动映射框架:手工匹配提供 POJO、SQL 和映射关系。
5. 什么时候用 MyBatis
mybais-helloworld
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/test"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com\\sunyard\\dao\\xml\\UserMapper.xml"/> </mappers> </configuration>
User.java
package com.sunyard.model; import java.util.Date; /** * Created by gaoeb on 2017/4/24. */ public class User { private int id; private String username; private String password; private int credits; private String lastIp; private Date lastVisit; private Date createTime; private Date updateTime; private int status; // getter and setter }
UserMapper.java
package com.sunyard.dao; import com.sunyard.model.User; /** * Created by gaoeb on 2017/4/24. */ public interface UserMapper { User getUserById(int id); }
UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.sunyard.dao.UserMapper"> <select id="getUserById" parameterType="java.lang.Integer" resultType="com.sunyard.model.User"> SELECT id AS id, username AS username, password AS password, credits AS credits, last_ip AS lastIp, last_visit AS lastVisit, create_time AS createTime, update_time AS updateTime, status AS status FROM t_user WHERE id = #{id} </select> </mapper>
MyBatisUtil.java
package com.sunyard.util; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; /** * Created by gaoeb on 2017/4/24. */ public class MyBatisUtil { private static SqlSessionFactory sqlSessionFactory = null; public static SqlSessionFactory getSessionFactory() { if (sqlSessionFactory == null) { try { sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml")); return sqlSessionFactory; } catch (IOException e) { e.printStackTrace(); } } return sqlSessionFactory; } }
Main.java
import com.sunyard.dao.UserMapper; import com.sunyard.model.User; import com.sunyard.util.MyBatisUtil; import org.apache.ibatis.session.SqlSession; public class Main { public static void main(String[] args) { System.out.println("Hello World!"); SqlSession session = MyBatisUtil.getSessionFactory().openSession(); UserMapper userMapper = session.getMapper(UserMapper.class); User user = userMapper.getUserById(1); System.out.println(user.toString()); session.close(); } }
--eof--
以上是关于1. MyBatis 简介的主要内容,如果未能解决你的问题,请参考以下文章
markdown [mybatis参考]关于mybatis #mybatis的一些片段
Mybatis关于复杂的SQL查询的处理&Mybatis的缓存机制