创建表
CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), order_price FLOAT ); INSERT INTO orders(order_no, order_price) VALUES('aaaa', 23); INSERT INTO orders(order_no, order_price) VALUES('bbbb', 33); INSERT INTO orders(order_no, order_price) VALUES('cccc', 22);
创建javabean类
package com.hb.bean; public class Order { private int id; private String orderNo; private float price; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getOrderNo() { return orderNo; } public void setOrderNo(String orderNo) { this.orderNo = orderNo; } public float getPrice() { return price; } public void setPrice(float price) { this.price = price; } @Override public String toString() { return "Order [id=" + id + ", orderNo=" + orderNo + ", price=" + price + "]"; } }
创建映射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"> <mapper namespace="com.hb.bean.orderMapper"> <!-- 这里namespace必须是“包名 + xml文件名”,不然要运行的时候要报错 “is not known to the MapperRegistry” --> <!-- 在SQL语句中定义别名,保证别名与类属性名一致 --> <select id="selectOrder" parameterType="int" resultType="com.hb.bean.Order"> select order_id id, order_no orderNo,order_price price from orders where order_id=#{id} </select> <!-- 使用自定义类型,指名类属性与表字段的对应关系 --> <select id="selectOrderResultMap" parameterType="int" resultMap="orderResultMap"> select * from orders where order_id=#{id} </select> <resultMap type="com.hb.bean.Order" id="orderResultMap"> <id property="id" column="order_id" /> <result property="orderNo" column="order_no" /> <result property="price" column="order_price" /> </resultMap> </mapper>
配置mybatis总配置文件
<?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> <settings> <!-- changes from the defaults for testing --> <setting name="cacheEnabled" value="false" /> <setting name="useGeneratedKeys" value="true" /> <setting name="defaultExecutorType" value="REUSE" /> </settings> <environments default="development"> <environment id="development"> <transactionManager type="jdbc" /> <dataSource type="POOLED"> <!-- <property name="driver" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@192.168.56.201:1521:system"/> --> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/mybatis" /> <property name="username" value="root" /> <property name="password" value="123456" /> </dataSource> </environment> </environments> <mappers> <mapper resource="com/hb/bean/orderMapper.xml" /> </mappers> </configuration>
创建测试类
package com.hb.test2; import java.io.InputStream; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Before; import org.junit.Test; import com.hb.bean.Order; public class Test2 { public static SqlSessionFactory sqlSessionFactory; public static SqlSession sqlSession; @Before public void init(){ //"/"表示是在src根目录下 String source = "config.xml"; InputStream inputStream = Test2.class.getClassLoader().getResourceAsStream(source); try { sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); // sqlSession = sqlSessionFactory.openSession(); //是否自动提交,默认不是自动提交的 sqlSession = sqlSessionFactory.openSession(true); } catch (Exception e) { e.printStackTrace(); } } @Test public void selectById(){ String statment = "com.hb.bean.orderMapper.selectOrder"; Order order = sqlSession.selectOne(statment, 1); System.out.println(order); } @Test public void selectById2(){ String statment = "com.hb.bean.orderMapper.selectOrderResultMap"; Order order = sqlSession.selectOne(statment, 1); System.out.println(order); } }