MyBatis学习(二)
来源:互联网 发布:华为杭州研究所知乎 编辑:程序博客网 时间:2024/05/21 06:57
一、Mybatis中三个对象的使用
SqlSessionFactoryBuilder:用来加载mybatis的全局配置文件,产生会话工厂。
SqlSessionFactory:产生会话,SqlSession工厂类,以工厂形式创建SqlSession对象,采用了Factory工厂设计模式。
SqlSession:通过API调用指定的sql,并返回结果,SqlSession对应一次数据库会话操作,当每次访问数据库时,都需要创建它。
1.1Mapper代理方式开发
需要注意以下几点:
1、映射文件中的namespace必须是Dao接口的全类路径名称
2、接口中的方法名称与映射文件中的id必须一致
3、映射文件中的接收的参数类型与接口中定义的方法中参数类型一致
4、映射文件中的输出类型与接口中的返回值类型一致
定义的Dao层接口:package com.mybatis.dao;import com.mybatis.pojo.User;public interface UserDao {/** * 通过id查询用户信息 * @param id * @return */public User queryUserById(int id);public void insertUser(User user);public void updateUser(User user);public void deleteUserById(int id);}
映射文件:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.mybatis.dao.UserDao"><!-- 根据id查询用户信息 --><select id="queryUserById" parameterType="int" resultType="com.mybatis.pojo.User">select * from user where id = #{id}</select><!--添加用户信息 --><insert id="insertUser" parameterType="com.mybatis.pojo.User">insert into user(username,sex,birthday,address)values(#{username},#{sex},#{birthday},#{address})</insert><!--更新用户信息 --><update id="updateUser" parameterType="com.mybatis.pojo.User">update user set username=#{username},sex=#{sex},birthday=#{birthday},address=#{address}where id=#{id}</update><!--删除用户信息 --><delete id="deleteUserById" parameterType="int"> delete from user where id = #{id}</delete></mapper>测试类:
package com.mybatis.demo;import java.io.IOException;import java.io.InputStream;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.junit.Before;import org.junit.Test;import com.mybatis.dao.UserDao;import com.mybatis.pojo.User;public class TestDemo2 {private SqlSessionFactory sqlSessionFactory;@Beforepublic void set() throws IOException{//加载全局配置文件String resource="SqlMapConfig.xml";InputStream inputStream=Resources.getResourceAsStream(resource);//获取会话工厂SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder(); sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream);}/** * 通过id查询用户 */@Testpublic void testqueryUserById(){SqlSession openSession = sqlSessionFactory.openSession();//获取代理UserDao userDao = openSession.getMapper(UserDao.class);System.out.println(userDao);User user = userDao.queryUserById(1);System.out.println(user);}}全局配置文件
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 用来加载外部的资源文件 --><properties resource="db.properties"/><environments default="development"><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /></dataSource></environment></environments><!-- 用来加载映射文件 --><mappers><mapper resource="com/mybatis/pojo/User.xml"/></mappers></configuration>
db.properties文件
jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8jdbc.username=rootjdbc.password=root
以上就是通过Mapper代理的方式开发,关注更多扫描下方二维码。
0 0
- mybatis学习(二)
- MyBatis学习(二)
- MyBatis学习(二)
- mybatis学习(二)
- MyBatis学习(二)
- MyBatis学习总结(二)
- MyBatis学习笔记二
- myBatis学习笔记(二)
- Mybatis学习总结二
- 学习Mybatis(二)
- MyBatis学习二
- mybatis学习二
- MyBatis学习笔记二
- Mybatis学习总结二
- Mybatis学习二
- MyBatis学习(二)
- mybatis学习(二)
- Mybatis学习(二)
- 1035. 插入与归并(25)
- 不要总埋怨自己记忆不好了,其实跟你的智商关系不大
- Java 后端实战——基于 Dubbo 的分布式系统架构
- SHOW INDEX 你用过吗???
- git克隆
- MyBatis学习(二)
- C的I/O函数备忘录
- 策略模式(组件协作)
- 猜数字的游戏Python3,用Python自动化无聊的东西-chapter3
- PHP冒泡排序
- HDU-1215 七夕节
- Red and Black 【DFS】【连通区域的大小】
- [Java容器]LinkedHashMap实现原理与源码解析
- 数学专题总结