您的位置:首页 > 数据库

MyBatis

2016-07-12 23:00 429 查看
1.作用:实现对数据库进行操作,MyBatis是对JDBC技术的封装,

1)封装了获取连接,生成Statement,执行SQL过程

2)封装了SQL参数设置过程 将参数设置到#{XX}

3)封装了将结果集映射成实体对象的过程 resultType指定,名称对应

2.MyBatis使用

1)导入mybatis包,数据库驱动包

2)添加SqlMapConfig.xml主配置文件

*定义数据库连接参数

*加载SQL定义文件 <mappers><mapper resource="SQL定义文件路径" /></mappers>

3)根据表写实体类(属性名与字段一致,属性类型与表一致,实现序列化)

*解决实体类和SQL定义文件属性名不一致的情况:使用别名或者自定义resultMap属性

<select id="findAll" resultMap="costMap"> //resultMap与resultType属性不能共存

SELECT * FROM cost

<select>

<resultMap id="costMap" type="包名.类名">

<id property="id" colum="cost_id"/>

<result property="name" colum="name"/>

</resultMap>

4)编写SQL,调用SQL, SQL定义XML文件(<select>,<update>,<insert>,<delete>)

eg:<select id="findById" parameterType="int" resultType="com.tedu.entity.User" >

SELECT * FROM lh_user WHERE id=#{id}

</select>

*id:SQL语句的名字,有唯一性,通过该名调用这个SQL语句

*parameterType:SQL语句中需要传入的参数类型

*resultType:指定查询出的结果集映射(封装)的类型

5)使用者加载SqlMapConfig.xml,利用SqlSession执行SQL

*获取SqlSession的三步曲SqlSessionFactoryBuilder-->SqlSessionFactory-->SqlSession

SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();

String conf="SqlMapConfig.xml";

Reader reader=Resources.getResourceAsReader(conf); //加载主配置文件(SqlMapConfig.xml),转化为流参数

SqlSessionFactory factory=builder.build(reader);//加载配置信息获取SqlSession工厂

SqlSession session=factory.openSession();
//由工厂创建Session对象

*SqlSession执行SQL

session.selectOne/session.selectList/session.insert/session.delete/session.update

3.Mapper映射器(接口)

1)MyBatis提供了一个Mapper映射器接口规则,按规则写出的接口,MyBatis框架可自动生成实现组件对象

2)规则:

*方法名与SQL定义的id属性保持一致

*方法的参数类型与SQL定义的parameterType属性保持一致

*方法返回类型 增删改---可以使void或int(受影响的记录行数)

查询---单行结果类型为resultType的类型,多行结果类型为List<resultType>

*SQL定义文件中<mapper>元素的namespace属性指定为"包名.接口名"

3)使用:sqlSession.getMapper(接口.clas);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis jdbc 数据库