课时1 Mybatis配置以及入门示例

1.)导入所需的jar包 mvn

 1  <dependency>
 2             <groupId>org.mybatis</groupId>
 3             <artifactId>mybatis</artifactId>
 4             <version>3.4.5</version>
 5         </dependency>
 6 
 7         <dependency>
 8             <groupId>mysql</groupId>
 9             <artifactId>mysql-connector-java</artifactId>
10             <version>5.1.6</version>
11         </dependency>
12 
13         <dependency>
14             <groupId>log4j</groupId>
15             <artifactId>log4j</artifactId>
16             <version>1.2.17</version>
17  </dependency>

.2)Mapper SQL映射的头部

1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
3         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
4 <mapper namespace="org.hbz.dao.IPersonDao">

.3)mapper SQL映射配置----编写实体对应数据库

1 <mapper namespace="org.hbz.dao.IPersonDao">
2         <select id="selectPersonById" parameterType="Integer" resultType="org.hbz.entity.Person">
3             select * from person where id=#{id}
4         </select>
5 </mapper>
 1 package org.hbz.entity;
 2 
 3 public class Person {
 4     private Integer id;
 5     private String name;
 6     private Integer age;
 7     private String sex;
 8 
 9     public Person() {
10 
11     }
12 
13     public Person(Integer id, String name, Integer age, String sex) {
14         this.id = id;
15         this.name = name;
16         this.age = age;
17         this.sex = sex;
18     }
19 
20     public Integer getId() {
21         return id;
22     }
23 
24     public void setId(Integer id) {
25         this.id = id;
26     }
27 
28     public String getName() {
29         return name;
30     }
31 
32     public void setName(String name) {
33         this.name = name;
34     }
35 
36     public Integer getAge() {
37         return age;
38     }
39 
40     public void setAge(Integer age) {
41         this.age = age;
42     }
43 
44     public String getSex() {
45         return sex;
46     }
47 
48     public void setSex(String sex) {
49         this.sex = sex;
50     }
51 
52     @Override
53     public String toString() {
54         return "Person{" +
55                 "id=" + id +
56                 ", name='" + name + '\'' +
57                 ", age=" + age +
58                 ", sex='" + sex + '\'' +
59                 '}';
60     }
61 }

.4) mybatis的主配置文件头

<?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">

.5)mybatis的主配置文件体

<configuration>
    <environments default="mysql">
        <environment id="mysql">
<!--                配置事务-->
            <transactionManager type="JDBC">
            </transactionManager>
<!--            配置数据库连接信息-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/ssm"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
<!--加载sql映射文件-->
    <mappers>
<!--        注意如果是xml文件 格式是../../..-->
        <mapper resource="org/hbz/dao/personMapper.xml"></mapper>
    </mappers>
</configuration>

.6)log4j配置文件如下

### 设置###
log4j.rootLogger = debug,stdout,D,E

### 输出信息到控制抬 ###
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 = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### 输出DEBUG 级别以上的日志到=E://logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = E://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG 
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 输出ERROR 级别以上的日志到=E://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =E://logs/error.log 
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR 
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

.7)dao层

/**
     * 按照id查询一个学生
     * @param id
     * @return
     */
    Student selectStudentById(Integer id);

.8)测试类

package org.hbz.test;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.hbz.dao.IPersonDao;
import org.hbz.entity.Person;

import java.io.IOException;
import java.io.Reader;

/**
 * 测试类
 */
public class MybatisTest {
    public static void main(String [] args) throws IOException {
        //加载mybatis配置文件(为了访问数据库)
       Reader reader= Resources.getResourceAsReader("config.xml");
       //创建工厂
        SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(reader);
        //打开一次会话
        SqlSession session=sessionFactory.openSession();
        //获取代理对象
        IPersonDao iPersonDao = (IPersonDao)session.getMapper(IPersonDao.class);
        //执行方法
        Person person = iPersonDao.selectPersonById(1);
        System.out.println(person.getName());

        //关闭流
        reader.close();
        //关闭会话
        session.close();
    }

}

.8)mybatis通过namespace加id定位出唯一的sql

 

posted @ 2020-03-07 22:04  何邦柱  阅读(145)  评论(2编辑  收藏  举报