数据持久层框架(DAO将数据持久化到数据库),实现DAO层的代码。对JDBC代码的封装
1.导入mybatis.jar、mybatis的lib依赖包、oracle的驱动jar 2.引入配置文件 mybatis-config.xml(链接数据库相关参数) Mapper.xml(相当于dao的实现类)
需求:使用MyBatis实现DAO的方式,添加一条person信息 1.书写DAO接口 public interface PersonDAO{ void insert(Person person); } 2.写Mapper文件(DAO实现类) <insert id="实现接口的方法名" parameterType="参数中实体类型全类名"> inser into t_person values(seq_person.nextval,#{属性名},#{sex},#{age}) </insert> 3.注册管理mapper文件 <mappers> <mapper resource="com/lhl/demo1/PersonDAOImpl.xml"></mapper> </mappers>
使用DAO目的: 1.获得DAO的对象 2.调用DAO的方法 常用的类: SqlSession 1.获得dao结果的实现类的对象 XxxDAO dao = sqlSession.getMapper(接口.class); 2.相当于connection。(提交事务,关闭close,回滚事务)
SqlSessionFactory 1.获得sqlSession SqlSession session = sqlSessonFactory.openSession(); 2.保存封装mybatis-config.xml配置文件 SqlSessionFactoryBuilder:读取配置文件 Resources:获得读取配置文件的输入流
步骤:
1.获得mabatis-config的输入流
2.读取mybatis-config的文件,构造成SqlSessionFactory
3.通过SqlSessionFactory获得SqlSession
4.通过SqlSession获得DAO接口的对象
5.调用方法测试
6.提交事务
7.释放资源
1.定义dao接口方法 void insert(Person person);//添加功能接口方法 void update(Person person);//修改功能接口方法 void delete(@param("id")Integer id);//删除功能接口方法
2.书写mapper文件标签 <!-- 添加一个person信息 --> <insert id="insert" parameterType="com.lhl.demo1.Person"> insert into t_person values(seq_person.nextval,#{name},#{sex},#{age},#{mobile},#{address}) </insert> <!-- 修改操作 --> <update id="update" parameterType="com.lhl.demo1.Person"> update t_person set name=#{name},sex=#{sex},age=#{age},mobile=#{mobile},address=#{address} where id=#{id} </update> <!-- 删除功能 --> <delete id="delete" parameterType="java.lang.Integer"> delete from t_person where id = #{id} </delete> 3.注册mapper文件:在mybatis-config.xml中绑定 <mappers> <!-- 注册管理所有的mapper文件 --> <mapper resource="com/lhl/demo1/PersonDAOImpl.xml"></mapper> </mappers>
1.书写dao接口方法
Person selectById(Integer id);
2.书写mapper文件(sql、参数、对查询结果映射实体对象)
<!-- 查询功能 -->
<select id="selectById" parameterType="java.lang.Integer" resultType="查询结果的一行数据映射的实体对象类型(com.lhl.demo1.Person)">
select id,name,sex,age,mobile,address from t_person where id = #{id}
</select>
3.注册mapper文件
1.书写dao接口方法
List<Person> selectAll();
2.书写mapper
<select id="selectAll" resultType="rs的一行数据映射实体类型">
select id,name,sex,age,mobile,address from t_person
<select>
3.注册mapper文件
1.书写dao
User selectByUsernameAndPassword(String username,String passwor);
2.书写mapper文件
<select id="selectByUsernameAndPassword" resuletType="*******">
select id,username,password from t_person where username=#{arg0} and password=#{arg1};
</select>
或者通过@Param取别名的方式
User selectByUsernameAndPassword(@Param("username")String username,@Param("password")String passwor);
select id,username,password from t_person where username=#{username} and password=#{password};
3.注册mapper文件
以下是XML中需要的转义字符:[/size] &(逻辑与) & <(小于) < >(大于) > "(双引号) " ‘(单引号) '
原文:https://www.cnblogs.com/lhl0131/p/13393959.html