框架:
含义:半成品的软件。即这个框架帮我我们写了一部分代码,我们用这个框架,就需要按这个框架的规则来把我们要完成的任务(软件)来补充完整。框架帮我们完成的那部分代码一般包括(类型装换,加载配置文件等)。
框架的一般步骤:
- 导包(即框架帮我们实现的那部分代码)
- 编写配置文件(通常分为位置固定,名字固定,或两者都或两者都不。如果是两者都不的话,肯定需要我们自己动手来加载配置文件)
- 编写业务代码(我们实现功能,需要自己写的代码)
框架的底层实现:
java的反射机制是框架的基础。java的设计模式常会被用到框架中(如:工厂设计模式,单例设计模式,构建者设计模式等等)
Mybatis框架:
一种持久化框架但不是ORM框架
步骤:
1.导包:
2.编写Mybatis.xml文件(通常放在src下,它是位置不固定名字不固定的配置文件)它是数据库配置文件。
<?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="default">
<environment id="default">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/daily"/>
<property name="username" value="root"/>
<property name="password" value="1234"/>
</dataSource>
</environment>
</environments>
<mappers>
<package name="com.mapper"/>
</mappers>
</configuration>
3.编写UserMapper.xml文件,放在以Mapper结尾的包中,它是映射文件,负责把数据库的表映射生成类。
<?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">
<mapper namespace="com.mapper.UserMapper">
<select id="selall" resultType="com.pojo.User" parameterType="int">
select * from user where id=#{0}
</select>
<resultMap type="com.pojo.User" id="usermap">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="password" column="password"/>
<collection property="list" select="com.mapper.PlanMapper.selbyid" column="id"></collection>
</resultMap>
<select id="sel" resultMap="usermap">
select * from user
</select>
<insert id="ins" parameterType="com.pojo.User" >
insert into user value (default,#{name},#{password})
</insert>
<delete id="del" parameterType="int" >
delete from user where id = #{0}
</delete>
<delete id="delall" parameterType="int">
delete from user where id = #{0}
<if test="1==1">
<!-- 级联删除!!! -->
</if>
</delete>
</mapper>
4.编写Test测试文件,但是一般在一个项目中一般不会有这一步,例如在spring-mybatis框架中,Test测试文件会由Spring部分代替。
InputStream is = Resources.getResourceAsStream("mybatis.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = factory.openSession();
PlanMapper plan = session.getMapper(PlanMapper.class);
int s = plan.delplan(4);
session.commit();
session.close();