当前位置:主页 > 查看内容

mybatis的执行顺序1(mybatis工作流程、生命周期)

发布时间:2021-06-20 00:00| 位朋友查看

简介:1. 首先加载mybatis-config.xml总配置文件根据development的参数配置连接数据库查询mappers映射关系找到mapper.xml配置文件。 mybatis-config.xml总配置文件代码 ?xml version1.0 encodingUTF-8? !DOCTYPE configuration PUBLIC -//mybatis.org//DTD Config……

1. 首先加载mybatis-config.xml总配置文件,根据development的参数配置连接数据库;查询mappers映射关系,找到mapper.xml配置文件。

mybatis-config.xml总配置文件代码

<?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="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="oracle.jdbc.OracleDriver"/>
                <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
                <property name="username" value="scott"/>
                <property name="password" value="tiger"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="com/gxy/dao/Rj191Mapper.xml"/>
    </mappers>
</configuration>

2. 执行mapper.xml文件,该文件记录了运行SQL;准备id的名字等待被调用。

mapper.xml代码

<?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="?">
    <!--通用结果集映射-->
    <resultMap id="BaseResultMap" type="com.gxy.entity.Rj191">
        <id column="id" property="id"></id>
        <result column="name" property="name"></result>
        <result column="age" property="age"></result>
        <result column="salary" property="salary"></result>
        <result column="create_date" property="createDate"></result>
    </resultMap>

    <!--查询数据-->
    <select id="selectRj191List" resultMap="BaseResultMap">
        select * from RJ191
    </select>

</mapper>

这是我实体类的一些属性,实体类里有getter和setter方法,有参,无参构造方法,tostring方法.

	private int id;//id
    private String name;//姓名
    private int age;//年龄
    private double salary;//工资
    private Date createDate;//创建日期

3. 测试类生成SqlSessionFactory工厂对象。

	//mybatis3.0  加载(读取)总配置文件
	String resouce = "mybatis-config.xml";//代表总配置文件的路径
	InputStream is = Resources.getResourceAsStream(resouce);
	//获取SqlSessionFactory对象
	SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);

4. 由工厂对象生成SqlSession,然后打开连接数据库连接通道。

 	//通过SqlSessionFactory打开SqlSession,是数据库之间的会话,通过session连接数据库. session类似于jdbc的connection数据库连接
    SqlSession session = factory.openSession();

5. 对应调用mapper.xml文件中的id,执行mapper.xml中SQL语句。

 	//Sq1Session内置多个操作数据库的API方法,参数通过字符串名称 获取mapper文件中的id,进而获取的sq1语句发送给数据库
  	List<Rj191> list = session.selectList("selectRj191List");
    //使用foreach输出
    for (Rj191 student : list) {
        System.out.println(student);
    }

7. 关闭SqlSession

 	//关闭session
    session.close();

在这里总结一下我遇到的错误.
java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符
在这里插入图片描述
这个错误是因为sql语句多加了一个 ; 号.把分号删了就可以了在这里插入图片描述
java.lang.IllegalArgumentException
在这里插入图片描述
这个是写代码太马虎了,在调用id的时候前面多了个空格.在这里插入图片描述
总结的可能不够好,萌新一枚请多关照.

;原文链接:https://blog.csdn.net/weixin_52033343/article/details/115618651
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐