Mybatis 23_使用MyBatis执行CRUD 项目CRUD和项目CRUD_object

使用MyBatis执行CRUD

    • 使用MyBatis执行CRUD
    • 使用MyBatis执行查询时
  • 项目CRUD
  • 项目CRUD_object

使用MyBatis执行CRUD

MyBatis编程的核心步骤:
(1)在mapper文件中定义SQL语句。
(2)使用SqlSession执行SQL语句。

【使用MyBatis】:程序员必须严格保证SQL语句是正确,MyBatis只是帮你去执行SQL语句。

JDBC中java.sql.PreparedStatementjava.sql.Statement的子接口,它主要提供了无参数执行方法如executeQuery和executeUpdate等,以及大量形如set{Type}(int, {Type})形式的方法用于设置参数。

/******************************************************
由于PreparedStatement执行SQL语句时,不管是insert、delete、update,PreparedStatement都调用executeUpdate()方法执行。

所以:

  1. MyBatis在mapper文件中使用定义DML语句时并没有本质的区别。

  2. SqlSession的insert、delete、update这三个方法都是执行PreparedStatement的executeUpdate()方法,
    因此这三个方法也没有本质的区别。

    *******************************************************/

使用MyBatis执行查询时

MyBatis的重要特征: 结果集映射。

所谓结果集映射:MyBatis会将查询得到的结果集映射成Java对象。
因此必须指定resultTyperesultMap两个属性的其中之一。

  • resultType:基于同名映射。要求查询的结果集的列名与对象的属性名必须对应。
 <select id="findNews" resultType="map">
 	select * from news_inf where news_id > #{id}		
 select>
  • resultMap:指定显式映射。

项目CRUD

mapper文件


DOCTYPE mapper
	PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
	"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
	
<mapper namespace="org.crazyit.app.dao.NewsMapper">
	
	<insert id="saveNewsa">
		
		insert into news_inf values (null, #{title}, #{content})
	insert>
	
	
	<update id="updateNews">
		update news_inf set news_title = #{title}, new_content = #{content}
		where news_id=#{id}
	update>
	
	
	<delete id="deleteUser">
		delete from news_inf where news_id = #{id} 
	delete>
	
	
	<select id="findNews" resultType="map">
		select * from news_inf where news_id > #{id}		
	select>
	
mapper>
package lee;

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

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 

你可能感兴趣的:(MyBatis,mybatis)