您的位置:首页 > 其它

Mybatis简介及入门步骤01

2020-06-25 04:49 411 查看

简介

  1. mybatis:
    原名:ibatis:apache
    2010 ibatis-> 被google colde收购 ,改名为Mybatis

  2. 功能
    ​ MyBatis可以简化JDBC操作,实现数据的持久化 。
    ​ ORM:Object Relational Mapping (对象关系映射)
    ​ person对象 对应 person表

  3. ORM:概念
    Mybatis是ORM的一个实现
    ORM可以使得开发人员 像操作对象一样 操作数据库表。

1.开发mybatis程序步骤:

导入jar包:mybatis-3.4.6.jar ojdbc6.jar 注意兼容问题

  • 数据库创建xxx表和xxx对象
create table person(id number,name varchar2(20),age number);
insert into person values(1,'zs',23);
commit;
--------------------------------------------------------------------
Person.java ....
  • 创建xxxMapper.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.xml映射文件的唯一标识 -->
<mapper namespace="org.ma.entity.personMapper">

<!-- id:如果有多个<select>可以通过id值来区分 -->
<!-- resultType:查询的返回结果值的类型 -->
<!-- parameterType:输入参数的类型 -->
<select id="queryPersonById" resultType="org.ma.entity.Person" parameterType="int">
<!-- #{id}相当于? -->
select * from person where id = #{id}
</select>
</mapper>
  • 创建conf.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值 和 environment的id值,来指定Mybatis运行时的数据库环境 -->
<environments default="development">
<!--开发环境(自己的计算机) -->
<environment id="development">
<!--事务提交方式:
JDBC:利于JDBC方式处理事务(手动方式commit,close等)
MANAGED:将事务交由其他组件去托管(spring,jobss等等),默认会关闭连接
-->
<transactionManager type="JDBC"/>
<!--dataSource:数据源类型
POOLED:使用数据库连接池
UNPOOLED:使用传统JDBC模式(每次打开数据库都需要 打开、关闭等数据库操作)
JNDI:从tomact中获取一个内置的数据库连接池(数据库连接池-数据源)
-->
<dataSource type="POOLED">
<!-- 数据库信息 -->
<property name="driver" value="oracle.jdbc.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:ORCL"/>
<property name="username" value="scott"/>
<property name="password" value="tiger"/>
</dataSource>
</environment>
<!-- 测试部门的计算机 -->
<environment id="test">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 数据库信息 -->
<property name="driver" value="oracle.jdbc.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@192.168.1.151:1521:ORCL"/>
<property name="username" value="abc"/>
<property name="password" value="123"/>
</dataSource>
</environment>
。。。。。。。。。。。。。。。。。。。。。。。。。

</environments>
<mappers>
<!-- 加载映射文件 -->
<mapper resource="org/ma/entity/personMapper.xml"/>
</mappers>
</configuration>

Person实体类

package org.ma.entity;

public class Person {
private int id;
private String name;
private int age;

public Person(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
public Person() {
super();
// TODO Auto-generated constructor stub
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return this.id+","+this.name+","+this.age;
}

}

测试类

package org.ma.entity;

import java.io.IOException;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class TestMyBatis {
public static void main(String[] args) throws IOException {
//加载MyBatis配置文件(为了访问数据库)
Reader reader = Resources.getResourceAsReader("conf.xml");
//需要SqlSessionFactory
SqlSessionFactory sessionFactory= new SqlSessionFactoryBuilder().build(reader);

//session 相当于 jdbc的connection
SqlSession session = sessionFactory.openSession();
//根据xxxMapper映射文件namespace找select标签的id值
String statement = "org.ma.entity.personMapper.queryPersonById";
//session.selectOne("需要查询的SQL的namespace.id","SQL的参数值");
Person person = session.selectOne(statement,1);
System.out.println(person);
session.close();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: