Mybatis配置

Mybatis配置

常用依赖(pom.xml)

<!--添加log4j依赖-->
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
<!--添加mybatis依赖-->
<dependency>
     <groupId>org.mybatis</groupId>
     <artifactId>mybatis</artifactId>
     <version>3.5.4</version>
</dependency>
<!--添加mysql依赖-->
<dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>8.0.31</version>
</dependency>
<!--添加jstl依赖-->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
<!--添加jlombok依赖-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.30</version>
</dependency>

常用配置文件

log4j配置文件 resource目录下创建(log4j.properties)

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n
### direct messages to file mylog.log ###
### log4j.appender.file=org.apache.log4j.FileAppender
### log4j.appender.file.File=d:mylog.log
### log4j.appender.file.layout=org.apache.log4j.PatternLayout
### log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n
### set log levels - for more verbose logging change 'debug?info?warn?error' ###
### log4j.rootLogger=debug,stdout,file
log4j.rootLogger=debug,stdout

Mybatis配置文件 resource目录下创建(mybatis-config.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>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="org/mybatis/example/BlogMapper.xml"/>
  </mappers>
</configuration>

Mybatis 数据源的提取 resource目录下创建(db.properties)

driver = com.mysql.cj.jdbc.Driver
url = jdbc:mysql://localhost:3306/qinmanage
username=root
password=127003

Mybatis 数据源的提取 resource目录下创建(db.properties)

db.driverName = com.mysql.cj.jdbc.Driver
db.url = jdbc:mysql://localhost:3306/qinmanage
db.username=root
db.password=127003

Mybatis核心的配置文件(mybatis-config.xml)中引入db.properties文件

<?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"/>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
		<!--
                ${key}使用db.properties中的内容                
                -->
                <property name="driver" value="${db.driverName}"/>
                <property name="url" value="${db.url}"/>
                <property name="username" value="${db.username}"/>
                <property name="password" value="${db.password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/StudentMapper.xml"/>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>

实体类对象别名的设置

<?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"/>
    <!--
        实体类对象的别名设置
        也就是在mapper.xml中使用实体类的时候,只需要书写类名不能加包名
    -->
    <typeAliases>
        <!--指定单个实体类的别名
            type:实体类   alias:别名
            <typeAlias type="com.neuedu.pojo.Student" alias="stu"/>
        -->
        <!--指定实体类的包位置,默认的名别为类名-->
        <package name="com.bboy.pojo"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!--
                ${key}使用db.properties中的内容
                -->
                <property name="driver" value="${db.driverName}"/>
                <property name="url" value="${db.url}"/>
                <property name="username" value="${db.username}"/>
                <property name="password" value="${db.password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/StudentMapper.xml"/>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>

传入的参数类型 parameterType/parameterMap

   1. parameterType/parameterMap(使用很少)
        1.1 表示传入的参数类型(基本数据类型、引入数据类型)
        1.1.1 传入基本数据类型
            parameterType="int"/parameterType="boolean"
        1.1.2 传入引用数据类型
            parameterType="包名+类名"
                parameterType="com.bboy.pojo.Student"
            parameterType="别名"
                parameterType="Student"
        1.1.3 传入map,具体使用的时候,使用的是map的键

返回值类型 resultType/ resultMap

 2. resultType
        2.1 返回值类型
        2.2 需求:查询出来的类名必须与返回的实体类对象的属性名一直
            select name,age from student
            Student(name,age)
        2.3 思考:如果查询出来的列名与实体类的属性名不一致?

如果查询出来的列名与实体类的属性名不一致 使用resultMap进行匹配

 3. resultMap
        3.1 返回值的类型
        3.2 需求:查询出来的列名可以和实体类中的属性名不一致时,使用resultMap进行匹配
<?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="com.bboy.mapper.StudentMapper">
    <!--
           resultMap:
               id: 自定义唯一标识
               type: 此映射关联的类
           id: 主键
               column: 表中查询出来的字段名
               property: 对象中的属性
           result:非主键字段
       -->
    <resultMap id="studentmap" type="Student">
        <id column="t-id" property="id"/>
        <result column="t_name" property="name"/>
        <result column="t_birth" property="birth"/>
        <result column="t_sex" property="sex"/>
    </resultMap>



<select id="listStudents" resultMap="studentmap">
    select *from student;
</select>
</mapper>

配置映射文件 resource目录下(StudentMapper.xml)尽量与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="com.bboy.mapper.StudentMapper">
  <select id="selectBlog" resultType="Blog">
    select * from Blog where id = #{id}
  </select>
</mapper>
posted @ 2023-11-17 10:50  Kbaor  阅读(22)  评论(0)    收藏  举报