Mybatis上路_01-基本流程

1.数据库准备:


1)创建数据库:

  CREATE DATABASE DB_MYBATIS CHAR SET UTF8;
  USE DB_MYBATIS; 

2)创建表单:

CREATE TABLE TB_PERSON(
    id INT PRIMARY KEY,
    name VARCHAR(32),
    country VARCHAR(60),
    address VARCHAR(60) 
);

3)插入条目:

 INSERT INTO tb_person VALUES (1,"Michael","USA", "Holliday");
 INSERT INTO tb_person VALUES (2,"Michael2","USA2","Holliday2"); 

 

2.使用MyEclipse创建web项目:


1)导入jar包:

2)创建JavaBean:

package cn.cvu.domain;

public class BeanPerson {
	private Integer id;
	private String name;
	private String country;
	private String address;
	
	public Integer getId() {...}
	public void setId(Integer id) {...}
	public String getName() {...}
	public void setName(String name) {...}
	public String getCountry() {...}
	public void setCountry(String country) {...}
	public String getAddress() {...}
	public void setAddress(String address) {...}
	
	public BeanPerson() {
	}
	public BeanPerson(Integer id, String name, String country, String address) {
		this.id = id;
		this.name = name;
		this.country = country;
		this.address = address;
	}
	
	@Override
	public String toString() {
		return "Person [id=" + id + ", name=" + name + ", country=" + country
				+ ", address=" + address + "]";
	}
}

3)配置JavaBean映射文件:

  此文件和JavaBean放在同一目录下,且名称相同。

<?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 namespace="cn.cvu.mybatis.query">

	<!-- 查询  id=“自定义的方法名” 
                paramenterType=“要操作的列的数据类型” 
                resultType=“对应的表单” --> 
	<select id="selectPersonByID" parameterType="int" resultType="tb_person">

		<!-- 查询语句。#{id}为参数,id不是固定的写法-->
		select * from tb_person where id = #{id}
	</select>

	<select id="selectPersonByName" parameterType="String" resultType="tb_person">
		select * from tb_person where name = #{name}
	</select>
</mapper>

4)配置Mybatis的Configuration.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>
	<typeAliases>
		<!-- alias=“JavaBean映射文件返回的对应的表单名称” type=“JavaBean全名” -->
		<typeAlias alias="tb_person" type="cn.cvu.domain.BeanPerson" />
	</typeAliases>

	<!-- 环境 default=“开发环境” -->
	<environments default="development">
		<environment id="development">
			<!-- 连接类型 type=“JDBC” -->
			<transactionManager type="JDBC" />
			<!-- 数据源 type=“连接池” -->
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url" value="jdbc:mysql://127.0.0.1:3306/db_mybatis" />
				<property name="username" value="root" />
				<property name="password" value="root" />
			</dataSource>
		</environment>
	</environments>

	<mappers>
		<!-- 映射资源 resource=“JavaBean配置文件” -->
		<mapper resource="cn/cvu/domain/BeanPerson.xml" />
	</mappers>
	
</configuration>

5)测试:

package cn.cvu.test;

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;
import org.junit.Test;
import cn.cvu.domain.BeanPerson;

public class TestMybatis {
/**
	 * 每次查询一条数据
	 * @throws Exception
*/
	@Test
	public void testQueryOne() throws Exception {
             //1。 创建读取器。读取器=Mybatis资源.得到资源读取器(Mybatis配置文件)
             Reader reader = Resources.getResourceAsReader("Configuration.xml");
             //2。创建SQL会话工厂。SQL会话工厂=new SQL会话工厂建造器().创建(读取器)
             SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
             //3。 创建SQL会话。SQL会话=SQL会话工厂.打开会话
             SqlSession session = sqlSessionFactory.openSession();
             //4。 查询。返回JavaBean=SQL会话.查询一条(BeanPerson.xml中定义的操作集命名空间.操作,参数)
             BeanPerson person = (BeanPerson) session.selectOne("cn.cvu.mybatis.query.selectPersonByID", 1);
             System.out.println("ID:" + person.getId());
             System.out.println("姓名:" + person.getName());
             System.out.println("国家:" + person.getCountry());
             System.out.println("地址:" + person.getAddress());
                 //------------------------------------------------------------
             person = (BeanPerson) session.selectOne("cn.cvu.mybatis.query.selectPersonByName", "Michael2");
             System.out.println("\nID:" + person.getId());
             System.out.println("姓名:" + person.getName());
             System.out.println("国家:" + person.getCountry());
             System.out.println("地址:" + person.getAddress());
             session.close();
	}
}


3.使用接口编程:


1)编写接口:

package cn.cvu.service;
importcn.cvu.domain.BeanPerson;
//接口,定义操作
public interfaceIOperationBean {
    //使用ID查询
    public BeanPersonselectPersonByID(Integer id);
    //使用name查询
    public BeanPersonselectPersonByName(String name);
}

2)修改BeanPerson.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 namespace="cn.cvu.service.IOperationBean"> 
	<!-- 查询   id=“IoperationBean接口中的方法名” 
                paramenterType=“要操作的列的数据类型” 
                resultType=“对应的表单” -->  
	<select id="selectPersonByID" parameterType="int" resultType="tb_person">
		<!-- 查询语句。#{id}为接口中selectPersonByID方法的参数-->
		select * from tb_person where id = #{id}
	</select>
	<select id="selectPersonByName" parameterType="String" resultType="tb_person">
		<!-- 查询语句。#{name}为接口中selectPersonByName方法的参数-->
		select * from tb_person where name = #{name}
	</select>
</mapper>

3)测试:

package cn.cvu.test;
 
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;
import org.junit.Test;
import cn.cvu.domain.BeanPerson;
import cn.cvu.service.IOperationBean;
 
public class TestMybatis {
/**
     * 每次查询一条数据
     * @throws Exception
*/
    @Test
    public void testQueryOne() throws Exception {
        //1。创建读取器。读取器=Mybatis资源.得到资源读取器(Mybatis配置文件)
        Reader reader = Resources.getResourceAsReader("Configuration.xml");
        //2。创建SQL会话工厂。SQL会话工厂=new SQL会话工厂建造器().创建(读取器)
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        //3。创建SQL会话。SQL会话=SQL会话工厂.打开会话
        SqlSession session = sqlSessionFactory.openSession();
        //4。创建接口。接口=SQL会话.得到映射(接口.class)
        IOperationBean operationBean = session.getMapper(IOperationBean.class);
        //5。查询。返回JavaBean=接口.使用ID查询(Integer)
        BeanPerson person = operationBean.selectPersonByID(1);
        System.out.println("ID:" + person.getId());
        System.out.println("姓名:" +person.getName());
        //-----------------------------------------------------------------
        //查询。返回JavaBean=接口.使用name查询(String)
        person = operationBean.selectPersonByName("Michael2");
        System.out.println("\nID:" + person.getId());
        System.out.println("姓名:" +person.getName());
        session.close();
    }
}

                            

- end


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值