首先先看看整个项目图
1. 引用相关的Mybatis包
最总要的是Mybatis-xxx.jar
2.引用数据库的驱动包
例如mysql的,就引用mysql-connector-jar-xxx.jar
3.在工程里创建一个config的文件夹,下面主要放置项目的一些配置文件
MyBatis这里需要以下几个
- jdbc.properties - jdbc的一些配置
jdbc.DriverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/abc
jdbc.username=root
jdbc.password=root
- mybatis.xml(这是一个mybatis的默认配置文件名称)
<?xml version="1.0" encoding="UTF-8"?> <!-- 这里需要留意的是 configuration 和 Config mybatis-3-config.dtd 如果在Mapper 这里的值是不一样的 --> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- properties加载指定路径的jdbc配置文件 --> <properties resource="jdbc.properties"></properties> <!-- 数据库池信息 --> <environments default="development"> <environment id="development"> <!-- 实务管理 --> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <!-- 这里的value是对应jdbc.properties里面的值,所以如果没有引用jdbc的配置文件,可以直接写值 --> <property name="driver" value="${jdbc.DriverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> </environments> <mappers> <!-- 这里的resource对应的是配置文件的相对路径名如果文件是放在com.test.model下,那这里就需要写成com/test/model/user.xml --> <mapper resource="user.xml"></mapper> </mappers> </configuration>
- 数据库表映射配置,假如你的表叫user,对应config下就放对应的映射文件,user.xml
<?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="user"> <!-- 这里的id是唯一标识 --> <!-- 这里的parameterType的值是入参类型,多参数传递需要使用其它方式,请看多参数传递的文章 --> <!-- 这里的resultType是返回值,这里的意思就是放回一个对应的对象 --> <!-- 这里的#{}里面的值名称需要和方法中的第一个参数名一致 --> <select id="getUserById" parameterType="java.lang.String" resultType="com.test.model.User"> select * from users where id=#{id} </select> </mapper>
4. 最后是Java代码
package com.test; import java.io.IOException; import java.io.InputStream; 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 com.test.model.User; public class MybatisTest { public static void main(String[] args) throws IOException { //读取配置文件 InputStream configFile = Resources.getResourceAsStream("mybatis.xml"); //根据配置文件新建一个工作方法 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(configFile); //利用工程方法启动一个session,这里要注意的是openSession的时候可以添加参数,openSession(boolean),这个参数代表是否自动提交事务,默认为false SqlSession session = factory.openSession(); //调用查询方法 String id = "1"; User user = session.selectOne("user.getUserById",id); System.out.println(user); session.close(); } }