mybatis入门

mybatis是什么?

  1. mybatis是一个持久层的框架,是apache下的项目
  2. mybatis能够将输入参数自动映射,能够将查询结果灵活地映射成java对象

配置mybatis

  1. 添加数据库的驱动包和mybatis的核心包以及依赖包
  2. 在classpath中添加log4j.properties文件
  3. 配置log4j.properties

    `# Global logging configuration
    '# 在开发情况下日志级别要设置成ˆDEBUG,生产环境设置成info或者error
    log4j.rootLogger=DEBUG, stdout
    '# Console output
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n`
    
  4. 添加全局配置SqlMapConfig.xml配置文件用于配置SqlMapping

    <?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="database1">
    <environment id="database1">
        <transactionManager type="JDBC" />
        <dataSource type="POOLED">
            <property name="driver" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
            <property name="username" value="root" />
            <property name="password" value="root" />
        </dataSource>
    </environment>
    </environments>
    <!-- 加载映射文件 -->
    <mappers>
    <mapper resource="sqlmap/User.xml"/>
    </mappers>
    

  5. 在classpath目录下创建一个sqlmap包,并且配置单个User.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">
    <!-- 命名空间,作用对sql进行分类管理 -->
    <mapper namespace="test">
    <!-- 在配置文件中配置很多的sql语句 -->
    <!-- 需求:通过id查询用户记录 -->
    <!-- 通过select执行数据查询
    id:标识映射文件的sql
    将sql语句封装到mappedStatement对象中,所以将id称为statement的id
    `#{}表示一个占位符`
    parameterType:指定输入参数的类型
    `#{id}:id表示我们输入的参数,参数的名称就是id`
    resultType:指sql输出的的结果所映射的java对象类型 select将单条记录映射成java对象
     -->
    <select id="findUserById" parameterType="int" resultType="com.aikeri.mybatis.bean.User">
    SELECT * FROM user WHERE id=#{id}
    </select>
    <!-- 查询多条数据
    resultType:是单条数据所映射的java数据类型
    ${}拼接sql字符串
    使用${}可能会引起sql注入
    ${}中只能使用value eg:${value}
    -->
    <select id="findUserByName" parameterType="java.lang.String" resultType="com.aikeri.mybatis.bean.User">
    SELECT * FROM user WHERE username LIKE '%${value}%'
    </select>
    </mapper>`
    

在SqlMapConfig中加载映射文件

<!-- 加载映射文件 -->
<mappers>
    <mapper resource="sqlmap/User.xml"/>
</mappers>

在java中用mybatis进行数据库操作

//全局配置文件路径
    String sqlMapConfig="SqlMapConfig.xml";
    //通过流的方式获取得配置文件信息
    InputStream inputStream=Resources.getResourceAsStream(sqlMapConfig);
    //创建会话工厂
    System.out.println(inputStream);
    SqlSessionFactory ssf=new SqlSessionFactoryBuilder().build(inputStream);
    System.out.println(ssf);
    //通过会话工厂得到SqlSession
    SqlSession ss=ssf.openSession();
    //通过SqlSession操作数据库,test.findUserById是映射文件的中select的id
    User user=ss.selectOne("test.findUserById", 1);
    System.out.println(user.getAddress());
    ss.close();//关闭会话释放资源

小结

  1. parameterType和resultType

    1. parameterType是在映射文件中指定的参数输入类型
    2. resultType是在映射文件中指定的输入结果类型
  2. ‘#{}和${}

    1. #{}表示一个占位符
    2. ${}是sql拼接符号,会引起sql注入,不建议使用
  3. selectOne和selectList
    1. selectOne查询出一条数据进行映射
    2. selectList查询出多条数据进行映射
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值