• Mybatis环境搭建(二)


    1. 创建Maven Project,选择war,修改pom.xml

    <properties>
        <!-- JDK版本 -->
        <java.version>1.8</java.version>
        <!-- mybatis版本 -->
        <mybatis.version>3.5.2</mybatis.version>
        <!-- mysql driver 版本 -->
        <mysql.version>5.1.48</mysql.version>
    </properties>
    
    <dependencies>
        <!-- web project基本配置 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
    
        <!-- mybatis 核心包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
        <!-- asm -->
        <dependency>
            <groupId>asm</groupId>
            <artifactId>asm</artifactId>
            <version>3.3.1</version>
        </dependency>
        <!-- cglib -->
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib</artifactId>
            <version>3.2.7</version>
            <exclusions>
                <exclusion>
                    <groupId>org.ow2.asm</groupId>
                    <artifactId>asm</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- javassist -->
        <dependency>
            <groupId>org.javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.23.1-GA</version>
        </dependency>
    
        <!-- log4j -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <!-- log4j-api -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.11.1</version>
        </dependency>
        <!-- slf4j-api -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.28</version>
        </dependency>
        <!-- slf4j-log4j12 -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.28</version>
            <scope>test</scope>
        </dependency>
        
        <!-- mysql driver -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>
    </dependencies>
    
    <build>
        <!-- 资源拷贝,默认不会将xml文件编译到classpath下 -->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.properties</include>
                </includes>
            </resource>
        </resources>
    </build>

    2. 在src/main/resources目录下创建mybatis.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>
        <!-- mybatis使用properties来引入外部properties配置文件的内容 
            resource 引入类路径下资源 
            url 引入网络路径或磁盘路径下资源
         -->
        <properties resource="jdbc.properties"></properties>
    
        <!-- default指定的是当前使用的环境 -->
        <environments default="default">
            <!-- 声明可能使用到的环境 -->
            <environment id="default">
                <!-- 使用原生的JDBC事务,默认是自动提交的 -->
                <transactionManager type="JDBC"></transactionManager>
                <dataSource type="POOLED">
                    <property name="driver" value="${jdbc.driver}" />
                    <property name="url" value="${jdbc.url}" />
                    <property name="username" value="${jdbc.name}" />
                    <property name="password" value="${jdbc.password}" />
                </dataSource>
            </environment>
        </environments>
        
    </configuration>

    jdbc.properties

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://192.168.178.5:12345/ssm?useUnicode=true&amp;characterEncoding=UTF-8&amp;useSSL=false&amp;serverTimezone=Asia/Shanghai
    jdbc.name=root
    jdbc.password=123456

    3. 创建映射文件

    (1) 实体类

    public class User {
        private Integer userId;
        private String userName;
        private Integer age;
        
        public User() {
        }
        public User(Integer userId, String userName, Integer age) {
            this.userId = userId;
            this.userName = userName;
            this.age = age;
        }
        public Integer getUserId() {
            return userId;
        }
        public void setUserId(Integer userId) {
            this.userId = userId;
        }
        public String getUserName() {
            return userName;
        }
        public void setUserName(String userName) {
            this.userName = userName;
        }
        public Integer getAge() {
            return age;
        }
        public void setAge(Integer age) {
            this.age = age;
        }
        @Override
        public String toString() {
            return "User [userId=" + userId + ", userName=" + userName + ", age=" + age + "]";
        }
    }

    (2) 映射接口

    public interface UserMapper {
    
        public List<User> selectAll();
    }

    (3) xml映射文件(可以看做是UserMapper接口的实现类)

    <?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">
    
    <!-- namespace对象接口的全限定名称(包名+类名) -->
    <mapper namespace="com.linhw.demo.mapper.UserMapper">
        <!-- id对应接口的方法名称 -->
        <select id="selectAll" resultMap="UserInfo">
            select * from user
        </select>
        
        <!-- 数据列与实体属性的映射 -->
        <resultMap type="com.linhw.demo.pojo.User" id="UserInfo">
            <id column="user_id" property="userId" jdbcType="INTEGER"/>
            <result column="user_name" property="userName" jdbcType="VARCHAR"/>
            <result column="age" property="age" jdbcType="INTEGER"/>
        </resultMap>
        
    </mapper>

    (4) 修改mybatis.xml,配置映射文件的路径

    放在配置文件所有标签的最后。

    <!-- 配置映射文件 -->
    <mappers>
        <mapper resource="com/linhw/demo/mapper/UserMapper.xml"/>
    </mappers>

    4. 测试

    //加载全局配置文件
    InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");
    //使用工厂设计模式
    SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    //生产SqlSession
    SqlSession session = sessionFactory.openSession();
    
    List<User> userList = session.selectList("com.linhw.demo.mapper.UserMapper.selectAll");
    
    for(User user : userList){
        System.out.println(user.toString());
    }
    //关闭连接
    session.close();

    附:xml配置文件自动提示 

    在全局配置文件或者mapper映射文件的约束中点击,电脑会提示下载文件到本地:

    config:http://mybatis.org/dtd/mybatis-3-config.dtd
    mapper:http://mybatis.org/dtd/mybatis-3-mapper.dtd

    配置eclipse:打开window–>Preferences–>XML–>XML catalog

    点击add,Location地方找到你下载好的dtd文件,key type用System-ID,key为http://mybatis.org/dtd/mybatis-3-config.dtd 或 http://mybatis.org/dtd/mybatis-3-mapper.dtd,然后确定保存,再返回xml文件,你就会发现自动提示能用啦(如果没有提示,需要重新选择xml文件的开发方式Open With Xml Editor)。

  • 相关阅读:
    The Android ION memory allocator
    ffmpeg 从mp4上提取H264的nalu
    annexb模式
    算法优化:rgb向yuv的转化最优算法
    Android平台上PMEM的使用及Platform设备注册(二)
    Android平台上PMEM的使用及Platform设备注册(一)
    ffmpeg教程
    视频编解码学习之四:视频处理及编码标准
    深入浅出:了解jsonp跨域的九种方式
    前端小知识集锦
  • 原文地址:https://www.cnblogs.com/myitnews/p/11561370.html
Copyright © 2020-2023  润新知