Mybatis练习2

本文章接着上篇内容,在其基础上做些改进,点击可进入上篇文章
修改1:Mybatis全局文件配置

1>在配置Mybatis全局文件配置的时候,我们需要链接数据库,以及输入用户名密码,在实际的开发过程中,不会直接把链接、用户名等直接写死而是类外写出来一个文件bd.properties,注意文件后缀就是.properties,不要后面再加一个.xml等多余后缀
创建bd.properties放在src目录下

jdbc.url=jdbc:mysql:///hzh
jdbc.driver=com.mysql.jdbc.Driver
jdbc.userName=root
jdbc.password=root

2>在Mybatis全局文件配置时,我们需要映射mapper接口,如果只有一个我们可以直接用昨天的

<mapper resource="com/yh/mapper/UserMapper.xml"/>

但是在实际的开发过程中,不会只有一个,往往是多个接口,这个时候我们就需要用<package/>标签来映射mapper文件目录

<mappers>
        <!--<mapper resource="com/yh/mapper/UserMapper.xml"/>-->
        <!--<mapper resource="com/yh/mapper/User1Mapper.xml"/>-->
        <package name="com.yh.mapper"></package>
</mappers>

这里需要注意:映射接口名和配置的.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>
	<!--将之前写的文件bd.properties导入进来-->
    <properties resource="db.properties"></properties>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
            	<!--获取文件bd.properties中的值,用${} 大括号里面写key键名-->
            	<!--前面的name属性属于mybatis内置属性,不要随意修改-->
                <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>
        <package name="com.yh.mapper"/>
    </mappers>
</configuration>
新增二:别名

在配置mapper文件的.xml文件时,我们输出和输入参数会写路径作为映射,写的多就非常麻烦,所以有了别名的出现,具体演示原版的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">
        <!--这个namespace指的是UserMapper的路径名,mybatis全部是通过反射来操作数据库及文件的-->
<mapper namespace="com.yh.mapper.UserMapper">
<!--select 代表的是执行的是查询方法,同样 它可以替换为insert update delete-->
<!-- id是UserMapper类中的方法名代表执行的执行sql语句的方法-->
<!--resultType是返回值类型同样是路径,如果是基础数据类型可以直接写成int、string等。-->
    <select id="getAll" resultType="com.yh.pojo.User">
<!--select 里面放的是执行的sql语句,为保证sql语句不出错,尽可能先在查询里面查询一次查看结果,如果无误再往里面填写-->
    select * from user
    </select>
<!--parameterType 传入参数的类型-->
	<select id="findUsersByName" resultType="com.yh.pojo.User" parameterType="String">
<!--模糊查询可以使用$() 但是容易sql注入通常都用#{} 但是要提前对传入的参数做修改加上%或者其他符号-->
        select * from user where username like "%${value}%"
        <!--select * from user where username like #{userName}-->
    </select>
</mapper>

<select> 里的resultType是"com.yh.pojo.User" 我们可以这样配置mydatis.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>
    <properties resource="db.properties"></properties>
    <typeAliases>
        <typeAlias type="com.yh.pojo.User" alias="user"></typeAlias>
    </typeAliases>
    <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>
        <package name="com.yh.mapper"/>
    </mappers>
</configuration>

注意:添加的是 <typeAliases> 标签,是配置在mydatis.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>
    <properties resource="db.properties"></properties>
    <typeAliases>
        <!--<typeAlias type="com.yh.pojo.User" alias="user"></typeAlias>-->
        <package name="com.yh.pojo"/>
    </typeAliases>
    <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>
        <package name="com.yh.mapper"/>
    </mappers>
</configuration>

这样写的话,这个包下的实体类会自动为实体类取别名,别名为类名的小写,比如com.yh.pojo.User的别名就为user。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值