mybatis入门系列一之创建mybatis程序

Mybatis基础系列一

创建第一个mybatis程序

需要配置项

1、 在conf.xml的需要配置配置两个标签数据库连接和mapper,xml文件加载信息
    <-- 进行数据库环境参数的配置    
        default里面是需要采用的数据库环境,因为可能有development、test等多种环境  
    -->
    &lt;environments default="development"&gt;
        &lt;environment id="development"&gt;
            &lt;transactionManager type="JDBC"/&gt;
            &lt;datasource type="POOLED"&gt;
                &lt;property name="driver", value=""/>
                &lt;property name="url", value=""/>
                &lt;property name="user" value=""/>
                &lt;property name="password" value=""/>
            &lt;/datasource>
        &lt;/environment>

        <-- 配置mapper.xml映射文件-->
        &lt;mappers>
            &lt;mapper resource=""></mapper>
        &lt;/mappers>
    &lt;/environments>

2、 编写mapper.xml文件
&lt;?xml version="1.0" encoding="UTF-8" ?>

&lt;!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 

&lt;mapper namespace="org.lanqiao.entity.personMapper">

    &lt;select id="queryPersonById" resultType="org.lanqiao.entity.Person"  parameterType="int">
        select * from person where  id = #{id} 
    &lt;/select>
&lt;/mapper>

mybatis规定一个SQL语句最多只能有一个输入参数

3、 编写与数据库中对应的类
4、 编写测试类(可选)

public static void main(String[] args) throws IOException {
        //加载MyBatis配置文件(为了访问数据库)
        Reader reader = Resources.getResourceAsReader("conf.xml") ;
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader) ;
        //session - connection  
        SqlSession session = sessionFactory.openSession() ;
        //statement用来定位SQL语句,是XXXmapper.xml中的namespace.id构成的
        String statement = "org.lanqiao.entity.personMapper.queryPersonById" ;
        //有参数时,将参数作为第二个参数跟在statement后面,若没有则调用只有一个参数的select函数 
        Student person = session.selectOne( statement,1 ) ;
        System.out.println(person);
        session.close(); 
        
    }

mybatis程序升级版

每次写一个定位SQL的statement很麻烦,我们可以采用动态代理或者接口开发的方式

与第一种方式的不同之处

采用约定优于配置的思想,,省略掉statement,根据约定直接定位出SQL语句

步骤

conf.xml,XXXmapper.xml以及实体类的编写都与上述方法相同,
不同的是增加一个XXXmapper.java的接口,
要求:
1、 mapper.java类名应该与mapper.xml里面的namespace相同
2、 mapper.java中的方法名称与mapper.xml里面对应的每一个SQL语句对应的id相同
3、mapper.java中方法的输入参数类型与mapper.xml中的@parameterType相同(若没有@parameterType则为无参函数)
4、mapper.java中方法的返回值类型与mapper.xml中的@resultType一致

则测试函数中可以修改为

StudentMapper studentMapper = session.getMapper(StudentMapper.class) ;  
studentMapper.方法();

程序优化

优化一:将数据库连接信息单独放在一个配置文件db.properties

为了方便查看与修改有关数据库连接的信息,我们可以选择将其单独放入一个.properties的配置文件中,采用键值对方式表示
然后在conf.xml文件里面引入这个.properties文件之后用${}的形式引用当中的变量与值

示例:
db.properties文件:

driver=oracle.jdbc.OracleDriver
url=jdbc:oracle:thin:@127.0.0.1:1521:ORCL
username=scott
password=tiger

conf.xml文件:

&lt;properties  resource="db.properties"/>
&lt;dataSource type="POOLED">
        &lt;property name="driver" value="${driver}"/>
        &lt;property name="url" value="${url}"/>
        &lt;property name="username" value="${username}"/>
        &lt;property name="password" value="${password}"/>
&lt;dataSource/>

优化二:设置别名

在mapper.xml文件中@resultType如果是对象类型的话要写完整
例如resultType="org.lanqiao.entity.Person"

通过设置别名我们可以简略这种写法

设置别名的方式

conf.xml文件中:

&lt;typeAliases>
    <-- 单个设置别名 -->
    &lt;typeAlias type="org.lanqiao.entity.Person" alias="Person">

    <-- 批量设置别名 则这个包下面所有类的别名都是去除包名之后的类名-->
    &lt;package name="org.lanqiao.entity">
&lt;typeAliases>

转载于:https://www.cnblogs.com/huanglf714/p/10767170.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值