mybatis入门

来源:互联网 发布:软件性能指标描述 编辑:程序博客网 时间:2024/06/15 07:51

mybatis是什么?

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

配置mybatis

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

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

    <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configurationPUBLIC "-//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 mapperPUBLIC "-//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查询出多条数据进行映射
原创粉丝点击