MyBatis入门

1、首先下载必要的jar包,包括:mybatis-***.jar、mysql-connector-java-***.jar、commons-logging-***.jar

2、在创建的项目中,建立一个properties文件,这里取名mysql.properties:

jdbc.driver=com.mysql.cj.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/mydata?serverTimezone=GMT

jdbc.username=root

jdbc.password=xushiyu

在这个文件中存放了一些jdbc的配置参数

3、建立一个名为mybatis.cfg.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>

  <!-- 引入外部配置文件,这里的配置文件为jdbc的配置文件的路径+文件名 -->
  <properties resource="SQLTest/mysql.properties"></properties>
   
   <!-- 配置mybatis运行环境 -->
     <environments default="cybatis">
        <environment id="cybatis">
            <!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
            <transactionManager type="JDBC" />
            
            <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
            <!-- POOLED 表示支持JDBC数据源连接池 -->
            <!-- UNPOOLED 表示不支持数据源连接池 -->
            <!-- JNDI 表示支持外部数据源连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
            </dataSource>
        </environment>
    </environments> 

 
</configuration>

4、创建一个实体对象

public class user {
    
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getGrade() {
        return grade;
    }
    public void setGrade(String grade) {
        this.grade = grade;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public int getMark() {
        return mark;
    }
    public void setMark(int mark) {
        this.mark = mark;
    }
    private int id;
    private String grade;
    private int age;
    private int mark;
    
    
    public String toString() {
        return "id is "+id
                +",grade is "+grade
                +",age is "+age
                +"mark is "+mark;
        
    }

}

5、创建一个mapper.xml,这里主要配置了处理数据库的语句以及返回的结果,可以配置多个

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="SQLTest.Dao">
<!-- 自定义返回结果集,id作为以下用的字段,type表示bean的位置 -->
   <resultMap id="userMap" type="SQLTest.user">
        <!--property与bean对象中的字段相同, column和数据库中的字段名称相同></id>-->
        <result property="id" column="id" javaType="java.lang.Integer"></result>
        <result property="age" column="age" javaType="java.lang.Integer"></result>
        <result property="mark" column="mark" javaType="java.lang.Integer"></result>
        <result property="grade" column="grade" javaType="java.lang.String"></result>
    </resultMap>
<!-- 在各种标签中的id属性必须和接口中的方法名相同 , id属性值必须是唯一的,不能够重复使用。parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型-->    
<!-- useGeneratedKeys:( 仅 对 insert 有 用 ) 这 会 告 诉 MyBatis 使 用 JDBC 的getGeneratedKeys 
            方法来取出由数据(比如:像 MySQL 和 SQLServer 这样的数据库管理系统的自动递增字段)内部生成的主键。默认值: false。 -->    
<!--keyProperty: (仅对 insert有用)标记一个属性, MyBatis 会通过 getGeneratedKeys或者通过 insert 语句的 selectKey 子元素设置它的值。默认:不设置。 -->
<!--#{}中的内容,为占位符,当参数为某个JavaBean时,表示放置该Bean对象的属性值  -->

 

<!--使用类似vo的形式返回数据<select id="selectAllUser" resultType="SQLTest.user">-->   

<!--使用集合的形式返回数据<select id="selectAllUser" resultType="java.util.HashMap">-->   

<select id="selectAllUser" resultMap="userMap">
     select * from users
    </select>


</mapper>

6、创建一个接口,内含所有mapper中sql语句对应id的方法:

public interface  Dao {
    public List<user> selectAllUser();
}

7、创建工具类,获取SqlSession对象

public class DBTools {
    public static SqlSessionFactory sessionFactory;
    
    static{
        try {
            //使用MyBatis提供的Resources类加载mybatis的配置文件
            Reader reader = Resources.getResourceAsReader("mybatis.cfg.xml");//这里即为实际文件的地址
            //构建sqlSession的工厂
            sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        } catch (Exception e) {
            e.printStackTrace();
        }
        
    }
    //创建能执行映射文件中sql的sqlSession
    public static SqlSession getSession(){
        return sessionFactory.openSession();
    }
    
}

7、测试。。。。。。

 Dao dao=sql.getMapper(Dao.class);
 List<user>list=dao.selectAllUser();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值