您的位置:首页 > 其它

Mybatis快速入门—新手Mybatis详细配置步骤介绍

2017-10-27 09:58 459 查看

新手学习Mybatis笔记—Mybatis配置

第一次接触Mybatis,记录自己的学习过程,首先通过查阅一些资料得到对Mybatis的以下几点理解

一、 Mybatis个人理解

Mybatis是一种针对SQL查询映射ORM持久层框架

配置过程与Hibernate相类似

Mybatis消除了繁琐的JDBC代码编码以及参数设置过程

相比较Hibernate,Mybatis更为轻量级。两者具体的比较,之后会记录

二、 Mybatis配置详解

1.准备Eclipse创建测试Mybatis的项目,最好是JavaWeb项目。在创建的过程中注意:

一是要创建WEB-INF下的classes文件夹(src下的源代码编译后存放在这里的字节码文件:xxxx.class等)

二是要创建WEB-INF下的web.xml文件(用于配置拦截器,过滤器以及servlet等的xml配置文件),具体如下图所示,创建过程中就可以创建两个classes文件与web.xml文件:





最后我们会看到目录下将有我们所要创建的文件及MybatisDemo的javaweb项目,这都是必须的,这只是对于菜鸟新手而言,其他的可以跳过此步。

注意:图中classes文件夹可能不会显示,这时候你可以百度怎么显示,但我记得是Project Exploer右上角倒三角下的Customize view-去掉java output folders前面的勾即可



2.准备jar包:mybatis-3.2.7.jar+mysql-connection-java-5.1.1.44-bin.jar复制到lib文件下,Libraries下自然就会多出Web App Libraries存放jar包的文件,不需要Add to build path



3.创建数据库和表,我用到的是Mysql+navicat

SQL脚本使用入如下:

create database mybatis_demo;
use mybatis_demo;
CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(10),age INT);
INSERT INTO users(NAME, age) VALUES('Zhangsan', 21);
INSERT INTO users(NAME, age) VALUES('Lisi', 22);


这里是创建好的用来简单测试数据库mybatis_demo下的表users



4.创建conf.xml文件,在src下右键new->other->xml file->创建conf.xml

复制代码覆盖xml文件,注意我使用的端口是3308,一般都是3306

<?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>
<!--一个environment代表一个环境变量,也就是一个基于JDBC的数据库连接,有多个JDBC就有多个environment  -->
<environments default="development">
<environment id="development">
<!--transactionManager声明事务管理器:基于JDBC  -->
<transactionManager type="JDBC" />
<!--dataSource:声明数据源,数据源的类型有NOPOOLED ,POOLED ,JIDN(开发和测试用POOLED)  -->
<dataSource type="POOLED">
<!-- property:配置数据库连接JDBC的一些属性信息 -->
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3308/mybatis_demo?useSSL=true" />
<property name="username" value="root" />
<property name="password" value="1234" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/mybatis/userMapper.xml"/>
</mappers>
</configuration>


注意一定要加上以下的mappers资源代码,不然会出现Cause: java.lang.IllegalArgumentException: Mapped Statements collection………错误

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


5.创建实体类User:在src下创建com.mybatis包,之后创建User类:

代码如下:

package com.mybatis;

/**
* @author Lijian
*
*/
public class User {

// 这里的属性必须跟数据库中字段要一致,必须对应
private int id;
private String name;
private int age;
/*
* 这里getter/setter方法以及toString都可以自动生成
*/
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 + "]";
}
}


6.创建映射文件userMapper.xml,一开始学习阶段跟实体类User在同一个包下(类似于:Hibernate中的映射文件配置)

<?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:指明userMapper映射文件的所在位置,一般都是:包名(com.mybatis)+映射文件名(userMapper)  -->
<mapper namespace="com.mybatis.userMapper">
<!--
1.parameterType属性指明查询时用到的参数类型:即id字段的类型
2.resultType属性指明查询返回的结果集类型:即返回一个User实体对象
3.resultType="com.mybatis.User"就表示将查询结果封装成一个User类的对象返回
4.在select标签中可以写SQL查询语句select * from users where id=#{id}
-->
<select id="getUser" parameterType="int"  resultType="com.mybatis.User">
select * from users where id=#{id}
</select>
</mapper>


7.创建TestDemo

package com.mybatis;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class TestDemo {

public static void main(String[] args) throws IOException {

String resource = "conf.xml";
//使用类加载器getClassLoader()加载mybatis的配置文件
InputStream in = TestDemo.class.getClassLoader().getResourceAsStream(resource);
//创建sqlSession的工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in);
//从sessionFactory里打开一个会话连接,即连接一个数据库
SqlSession session = sessionFactory.openSession();
/*
* 映射sql的标识字符串statement:
* com.mybatis.userMapper是mapper映射文件中唯一的标识符namespace
* selectById是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL语句
*/
String statement = "com.mybatis.userMapper.selectById";
//执行查询返回数据库第1条记录 :也可以使用selectList
User user=session.selectOne(statement,1);
System.out.println(user);
//执行查询返回数据库第2条记录
User user2=session.selectOne(statement,2);
System.out.println(user2);
}
}


接下来运行TestDemo->Run as->Java Application

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐