MyBatis概念和”安装“
Posted hello,vicme!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis概念和”安装“相关的知识,希望对你有一定的参考价值。
MyBatis概念
MyBatis的前身就是iBatis,本是apache的一个开源项目,2010年这个项目由apahce sofeware foundation 迁移到了google code,并且改名为MyBatis。
MyBatis是一个数据持久层(ORM)框架。
MyBatis是把实体类和sql语句之间建立了映射关系,而Hibernate在实体类和数据库之间建立了映射关系。
总体来说 MyBatis 主要完成两件事情
- 根据 JDBC 规范建立与数据库的连接;
- 通过Annotaion/XML+JAVA反射技术,实现 Java 对象与关系数据库之间相互转化。
MyBatis的优点
- 基于SQL语法,简单易学。
- 能了解底层组装过程。
- SQL语句封装在配置文件中,便于统一管理与维护,降低了程序的耦合度。
- 程序调试方便。
MyBatis层次结构
MyBatis安装(环境配置)*.* 例子是最好的笔记
- 准配需要的jar包:mybatis-3.2.6.jar和mysql-connector-java-5.1.11-bin.jar
2.创建mybatis-config.xml,并配置数据库环境
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE configuration 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 5 <configuration> 6 <!-- 环境 --> 7 <environments default="developments"> 8 <environment id="mysql"> 9 <transactionManager type="JDBC"></transactionManager> 10 <dataSource type="POOLED"> 11 <property name="driver" value="com.mysql.jdbc.Driver"/> 12 <property name="url" value="jdbc:mysql://127.0.0.1:3306/mydbone"/> 13 <property name="username" value="root" /> 14 <property name="password" value="199751hwl" /> 15 </dataSource> 16 </environment> 17 </environments> 18 19 </configuration>
3.创建一个实体Person.java
package com.model.system; public class Person { private Integer persId; private String persName; private String persSex; private String persHobby; public Person() {} public Person(Integer persId, String persName, String persSex, String persHobby) { super(); this.persId = persId; this.persName = persName; this.persSex = persSex; this.persHobby = persHobby; } public Integer getPersId() { return persId; } public void setPersId(Integer persId) { this.persId = persId; } public String getPersName() { return persName; } public void setPersName(String persName) { this.persName = persName; } public String getPersSex() { return persSex; } public void setPersSex(String persSex) { this.persSex = persSex; } public String getpersHobby() { return persHobby; } public void setpersHobby(String persHobby) { this.persHobby = persHobby; } @Override public String toString() { return "Person [persId=" + persId + ", persName=" + persName + ", persSex=" + persSex + ", persHobby=" + persHobby + "]"; } }
4.为实体配置对应的映射文件Person.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.model.system.Person"> <resultMap type="com.model.system.Person" id="person"> <result column="persId" property="persId" /> <result column="persName" property="persName" /> <result column="persSex" property="persSex" /> <result column="persHobby" property="persHobby" /> </resultMap> <!-- 查询用户通过用户ID --> <select id="queryPersonByPersonId" parameterType="java.lang.Integer" resultMap="person"> select * from person where persId = #{persId} </select> <!-- 添加用户通过用户ID --> <select id="insertPerson" parameterType="java.lang.String" resultMap="person"> INSERT INTO person(persName,persSex,persHobby) VALUE (#{persName},#{persSex},#{persHobby}) </select> </mapper>
5.在mybatis-config.xml,添加User.xml映射文件
1 <!-- 添加映射文件 --> 2 <mappers> 3 <mapper resource="com/mapper/system/Person.xml" /> 4 </mappers>
6. 调用类(测试类)
1 package com; 2 3 import java.io.IOException; 4 import java.io.Reader; 5 6 import org.apache.ibatis.io.Resources; 7 import org.apache.ibatis.session.SqlSession; 8 import org.apache.ibatis.session.SqlSessionFactory; 9 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 10 11 import com.model.system.Person; 12 13 public class TestQueryPersonById { 14 15 public static void main(String[] args) throws IOException { 16 17 // 从XML中创建SqlSessionFactory 18 String resource = "mybatis-config.xml"; 19 20 Reader reader = Resources.getResourceAsReader(resource); 21 SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader, "mysql"); 22 // 获取session 23 SqlSession session = ssf.openSession(); 24 25 Person person = session.selectOne("com.model.system.Person.queryPersonByPersonId", 1); 26 // 通过命名空间查找sql 27 System.out.println(person); 28 } 29 }
以上是关于MyBatis概念和”安装“的主要内容,如果未能解决你的问题,请参考以下文章
markdown [mybatis参考]关于mybatis #mybatis的一些片段