美文网首页
idea搭建 mybatis框架

idea搭建 mybatis框架

作者: Alex_1799 | 来源:发表于2018-05-08 13:40 被阅读0次
      #{}相当于对数据 加上 双引号,${}相当于直接显示数据
    

    {}方式能够很大程度防止sql注入,${}方式无法防止Sql注入。

    <select id="findById" resultType="Dept" parameterType="long">
    SELECT deptno,dname,loc FROM ${deptno} WHERE deptno=#{deptno}
    </select>

    先看一下项目整体


    图片.png

    第一步:添加jar包,如果使用maven或是gradle构建项目,那么就不要了,去配置依赖关系


    图片.png

    第二步:创建一个数据库喽,新建user表


    图片.png

    create database mybatis;
    use mybatis;
    create table users (
    id int primary key auto_increment,
    name varchar(20),
    age int
    );
    insert into users(name,age) values('剑圣',27) ;
    insert into users(name,age) values('盖伦',30);

    第三步:建立实体类,和数据库对应啦


    图片.png

    package com.domain;

    public class User {
    private int id;
    private String name;
    private int age;

    public int getId() {
        return id;
    }
    
    public void setId(int id) {
        this.id = id;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public int getAge() {
        return age;
    }
    
    public void setAge(int age) {
        this.age = age;
    }
    
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
    

    }
    第四步:建立接口userMapper (mybatis面向接口,编程,而接口不需要写实现,屌不屌)


    图片.png
    图片.png

    第五步:建立userMapper.xml文件


    图片.png
    图片.png

    <?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.mapping.userMapper">

    <!--
         根据id查询得到一个user对象
      -->
    
    <select id="getUser" parameterType="int" resultType="com.domain.User">
        select * from users where id=#{id}
    </select>
    

    </mapper>

    第六步:配置mybatis管理数据库


    图片.png
    图片.png

    <?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">
            </transactionManager>
            <!--配置数据库连接信息-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"></property>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"></property>
                <property name="username" value="root"></property>
                <property name="password" value=""></property>
            </dataSource>
        </environment>
    </environments>
    <!--注册userMapper.xml文件-->
    <!--userMapper.xml位于com.mapping这个包下,所以resource写成com/mapping/userMapper.xml-->
    

    <mappers>
    <mapper resource="com/mapping/userMapper.xml"></mapper>
    </mappers>

    </configuration>

    最后一步:跑起我们的程序
    package com.test;

    import com.domain.User;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;

    import java.io.InputStream;

    public class Test1 {
    public static void main(String[] args){
    //mybatis配置文件
    String resource="resources/conf.xml";

        //使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)
        //Reader reader = Resources.getResourceAsReader(resource);
        //构建sqlSession的工厂
        //SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        //创建能执行映射文件中sql的sqlSession
    
        //使用类加载器加载mybatis配置文件(它也加载关联的映射文件)
        InputStream is=Test1.class.getClassLoader().getResourceAsStream(resource);
    
        //构建sqlSession工厂
        SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(is);
    
    
        SqlSession session=sessionFactory.openSession();
    
        /**
         * 映射sql的标识字符串,
         * com.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
         * getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
         */
    

    //在命名空间“com.mapping.userMapper”中定义了一个名为“getUser”的映射语句,
    //这样它就允许你使用指定的完全限定名“com.mapping.userMapper.getUser”来调用映射语句,
    //格式:命名空间名(namespace)+映射语句名(id)

        String statement="com.mapping.userMapper.getUser";//映射SQL的标识字符串
    //执行查询返回一个唯一的user对象的SQL
        User user=session.selectOne(statement,2);
        System.out.print(user);
    }
    

    }

    图片.png

    相关文章

      网友评论

          本文标题:idea搭建 mybatis框架

          本文链接:https://www.haomeiwen.com/subject/ecnirftx.html