mybatis-初始简单配置(XML)

应用mybatis的步骤:

mybatis的入门

依赖配置。操作:

1,新建实体类,类中的属性和数据库中的属性所对应

2,新建dao接口,里面写上你需要的方法(比如说返回全部的list集合)。

3,在resource里面新建XML文件,名叫SqlMapConfig.xml(mybatis的主配置文件)

4,配置映射配置文件,例如IUserDao.xml

 

环境搭建注意事项:

第一个,创建IUserDao。XML和IUserDao.java名称是为了保持一致。在mybatis中它把持久层的操作接口和名称和映射文件也叫作Mapper,所以,IUserDao和IUserMapper是一样的

在二个,在idea中创建目录是和包不一样。包是:com.demo.dao是三级目录,而resource目录是一级的。

第三个,mybatis的映射配置文件必须和dao接口包结构相同。(同时,映射配置文件名称和接口名称必须相同)

第四个,映射配置文件的mapper标签namespace属性取值必须是dao接口的全限命名

第五个,映射配置文件的操作配置(select),id属性的取值必须是dao接口的方法名

 

好处:当我们这样写的时候,不需要写dao实现类了。

SqlMapConfig.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="mysql.properties"></properties>
<!--    这个包下的实体类自动起别名,为类名,无视大小写-->
    <typeAliases>
        <package name="domain"/>
    </typeAliases>
<!--    配置数据源-->
    <environments default="mysql">
        <environment id="mysql">
            <transactionManager type="JDBC"></transactionManager>
<!--            pooled  连接池-->
            <dataSource type="POOLED">
<!--                ${key}引用外部properties中的key-->
                <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>
<!--    接口Mapper文件的路径,按包指定-->
    <mappers>
        <package name="dao"/>
    </mappers>
</configuration>

起别名和Mapper文件指定包更具价值。

实体类

public class User implements Serializable {
    private Integer id;
    private String name;
}

dao接口

public interface IUserDao {
    List<User> findAll();
    User findById(Integer id);
    List<Account> findAccountsByUid(Integer id);
}

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="dao.IUserDao">
    <resultMap id="userMap" type="user">
        <id property="id" column="id"></id>
        <result property="name" column="name"></result>
    </resultMap>
    <select id="findAll" resultMap="userMap">
   select * from users;
    </select>
    <select id="findById" resultType="user" parameterType="int">
        select * from users where id=#{id}
    </select>
</mapper>

ParameterType表示参数类型。若指定查询的数据不止一个,例如username和password必须同时符合,最好封装到对象中,#{property}表示从参数对象中取值,若只是一个值,指定类型即可,property值任意。

resultType:表示返回值类型,指定为一个对象。(只适合于简单查询)

resultMap:表示返回类型的映射。(当数据库的列名称和对象属性不一致时,当多表查询时,必须指定,可重用);

test代码:

  @Before
    public void init() throws IOException {
        InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
        session= factory.openSession(true);
    }
    @org.junit.Test
    public void test() throws IOException {

        IUserDao userDao= session.getMapper(IUserDao.class);
        List<User> all = userDao.findAll();
        for (User user : all) {
            System.out.println(user);
            System.out.println(user.getAccounts());
        }
    }

结果:

增删改,只需要简单修改Mapper即可。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值