mybaits开发步骤

1).新建一个java web工程/可以使java 工程;

         新建mybatis工程的java package包

2).把mybatis框架的jar包及其依赖包拷贝到项目工程中

如:log4j,数据库等依赖的包

3).编写数据实体类,与数据库表进行对应 - 为orm做准备

import java.util.Date;

public class Cource {
	//编号
	private String courceId;
	//名称
	private String courceName;
	//学分
	private Integer courceScore;
	//开课时间
	private Date startDate;
	
	public Cource() {
		super();
	}

	public Cource(String courceId, String courceName, Integer courceScore,
			Date startDate) {
		super();
		this.courceId = courceId;
		this.courceName = courceName;
		this.courceScore = courceScore;
		this.startDate = startDate;
	}

	public String getCourceId() {
		return courceId;
	}

	public void setCourceId(String courceId) {
		this.courceId = courceId;
	}

	public String getCourceName() {
		return courceName;
	}

	public void setCourceName(String courceName) {
		this.courceName = courceName;
	}

	public Integer getCourceScore() {
		return courceScore;
	}

	public void setCourceScore(Integer courceScore) {
		this.courceScore = courceScore;
	}

	public Date getStartDate() {
		return startDate;
	}

	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}
		
}

4).定义数据操作接口,并在接口中定义数据操作

import java.util.List;

import com.neuedu.mybatisdemo.bean.Cource;

//接口用于定义数据库的操作
public interface ICourceDao {
	
	//查询所有的课程
	public List<Cource > findAll();
	
	//根據課程編號查詢課程信息
	public Cource findById(String id);
	
	//新增课程
	public void addCource(Cource cource);
	
	//
	public void  editCource(Cource cource);
	
	public void deleteById(String id);
}

 

 

5).编写一个接口映射文件,对接口的数据操作进行映射

 

 

 
<?xml version="1.0" encoding="UTF-8"?>
<!-- mybatis接口映射文件,用于映射接口操作,
	mybatis会根据配置文件的配置实现数据库的操作 -->
<!-- 注意:mybatis有两个配置文件,一个是全局配置文件,一个接口映射文件
	接口映射文件需要使用接口文档映射定义
 -->
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 在mapper映射文件中,使用mapper标签进行实现接口映射,使用namespace指定要映射的接口
	即namespace配置的是接口的名称,一般的一个映射文件实现(映射)一个接口,
	在运行过程中,mybatis的代理会根据配置文件实现数据操作接口定义的数据库操作(相当于由mybatis编写了一个接口实现类)
  -->
<mapper namespace="com.neuedu.mybatisdemo.dao.ICourceDao">
	<!-- resultMap用于配置查询结果的映射关系 -->
	<resultMap type="com.neuedu.mybatisdemo.bean.Cource" id="courceMap">
	<!-- id用于配置数据库的主键或唯一列 -->
	<!-- orm框架可以完成数据库表的列与java类的属性的映射关系 -  objct mapping对象映射,relation mapping关系映射 -->
	<id column="cource_id" property="courceId" />
	<result column="cource_name" property="courceName" />
	<result column="cource_score" property="courceScore" />
	<result column="start_date" property="startDate" />
	</resultMap>
	<!-- 在接口映射文件中,使用select,inser,update,delete配置对应的sql脚本 -->
	<!-- 在以上标签中,使用id配置接口的方法名称,resultMap用于配置自定义的结果映射关系 -->
	<select id="findAll" resultMap="courceMap" >
		select * from cource
	</select>
	<!-- 注意:使用mybatis進行配置,id不能重名,即接口方法不能重載 -->
	<!-- 如果接口方法有參數,需要使用parameterType配置參數的類型(原始數據類型或對象類型),
	有多個參數使用parameterMap進行配置或使用對象兩類型進行配置(集合類型) -->
	<select id="findById" resultMap="courceMap" parameterType="String">
	<!-- 可以使用#{} 獲取參數值 -->
		select * from cource where cource_id=#{id}
	</select>
	<insert id="addCource" parameterType="com.neuedu.mybatisdemo.bean.Cource">
		INSERT INTO cource(cource_id,cource_name,cource_score,start_date) 
		VALUES (#{courceId},#{courceName},#{courceScore},sysdate)
	</insert>
	
	<delete id="deleteById" parameterType="String">
		delete cource where cource_id=#{id}
	</delete>
	<update id="editCource" parameterType="com.neuedu.mybatisdemo.bean.Cource">
		update cource set cource_name=#{courceName},cource_score=#{courceScore},start_date=sysdate
		where cource_id=#{courceId}
	</update>
</mapper>

 


6).编写mybatis全局配置文件,配置数据库连接参数,配置映射文件或数据操作接口。。。

 

<?xml version="1.0" encoding="UTF-8"?>
<!-- 这是mybatis全局配置文件,用于用于进行mybatis配置 -->
<!-- dtd:文档了卫星定义:使用全局文档类型约束 可以配置哪些标签,每个标签可以配置哪些文件 -->
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
  <configuration>
  
  <!-- 配置mybatis的运行环境 -->
  	<environments default="development">
    <environment id="development">
    	<!-- 配置事务管理器 -->
      <transactionManager type="JDBC"/>
      <!-- 配置jdbc的4个参数 -->
      <dataSource type="POOLED">
        <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin://localhost:1521/orcl"/>
        <property name="username" value="crm"/>
        <property name="password" value="123"/>
      </dataSource>
    </environment>
  </environments>
  
  <mappers>
  <!-- 关联mybatis的接口映射文件 -->
    <mapper resource="com/neuedu/mybatisdemo/dao/ICourceDao.xml"/>
  </mappers>
  </configuration>

 

 

7).编写测试类,测试mybatis框架:4个步骤,获取mybatis环境-->实例化数据操作接口-->调用接口方法-->处理操作接口

 

 

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

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.apache.log4j.Logger;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.neuedu.mybatisdemo.bean.Cource;
import com.neuedu.mybatisdemo.dao.ICourceDao;
import com.sun.org.apache.xml.internal.security.Init;

public class TestICourceDao {

	private Logger logger = Logger.getLogger(TestICourceDao.class);
	private SqlSession session = null;

	@Before
	public void init() {
		// 1.加载mybatis环境
		try {
			String resource = "config/mybatis-config.xml";
			InputStream inputStream = Resources.getResourceAsStream(resource);
			SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
			// 2.通过mybatis实例化数据访问接口
			session = sqlSessionFactory.openSession();
		} catch (IOException e) {
			logger.warn("发生了异常", e);
		}

	}
	@After
	public void destroy(){
		if(session != null){
			session.close();
		}	
	}

	@Test
	public void testFindAll() {

		ICourceDao courceDao = session.getMapper(ICourceDao.class);
		// 3.调用数据访问接口,进行数据操作
		List<Cource> list = courceDao.findAll();
		// 4.处理数据操作的结果
		for (Cource cource : list) {
			logger.info("\n" + cource.getCourceId() + " "
					+ cource.getCourceName() + " " + cource.getCourceScore()
					+ " " + cource.getStartDate());
		}

	}

	@Test
	public void testFindById() {
	
			ICourceDao courceDao = session.getMapper(ICourceDao.class);
			// 3.调用数据访问接口,进行数据操作
			Cource cource = null;
			// 方法1: - 通過mybatis session先獲取mybatis映射接口,在調用接口的方法進行查詢
			// cource = courceDao.findById("cource001");

			// 方法2: - 直接使用mybatis session調用直接接口和方法,并進行參數傳遞
			cource = session.selectOne(
					"com.neuedu.mybatisdemo.dao.ICourceDao.findById",
					"cource001");
			// 4.处理数据操作的结果
			if (cource != null) {
				logger.info("\n" + cource.getCourceId() + " "
						+ cource.getCourceName() + " "
						+ cource.getCourceScore() + " " + cource.getStartDate());
			} else {
				logger.info("沒有找到數據");
			}


	}
	@Test 
	public void testAddCource(){
		Cource cource = new Cource("cource002", "mybatis实战", 4, null);
		try{
			session.getMapper(ICourceDao.class).addCource(cource);
			logger.info("数据插入成功");
			//事务提交
			session.commit();
		}catch(Exception e){
			logger.warn("数据插入失败",e);
			//session.rollback();
		}
		
	}
	@Test 
	public void testEditCource(){
		Cource cource = new Cource("cource002", "mybatis实战", 3, null);
		try{
			session.getMapper(ICourceDao.class).editCource(cource);
			logger.info("数据修改成功");
			//事务提交
			session.commit();
		}catch(Exception e){
			logger.warn("数据修改失败",e);
			//session.rollback();
		}
		
	}
	
	@Test 
	public void testDeleteCource(){
		//Cource cource = new Cource("course002", "mybatis实战", 4, null);
		try{
			session.getMapper(ICourceDao.class).deleteById("cource002");
			logger.info("数据删除成功");
			//事务提交
			session.commit();
		}catch(Exception e){
			logger.warn("数据删除失败",e);
			//session.rollback();
		}
		
	}	
	
}

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值